Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
2 | <html> | |
3 | <head> | |
4 | <meta http-equiv="CONTENT-TYPE" | |
5 | content="text/html; charset=iso-8859-1"> | |
6 | <title>/import/archperf-www/Tools/Root_Image.html</title> | |
7 | <meta name="GENERATOR" content="StarOffice 8 (Solaris Sparc)"> | |
8 | <meta name="CREATED" content="20030501;15353200"> | |
9 | <meta name="CHANGEDBY" content="Sreenivas Vadlapatla"> | |
10 | <meta name="CHANGED" content="20070427;14430500"> | |
11 | <style> | |
12 | <!-- | |
13 | @page { size: 8.5in 11in } | |
14 | --> | |
15 | </style> | |
16 | </head> | |
17 | <body dir="ltr" lang="en-US"> | |
18 | <h1 align="center">SAM User Manual</h1> | |
19 | <h1 align="center">Version 2.0</h1> | |
20 | <p><br> | |
21 | <br> | |
22 | <br> | |
23 | <br> | |
24 | <br> | |
25 | <br> | |
26 | <br> | |
27 | <br> | |
28 | </p> | |
29 | <h1 align="center">Sreenivas Vadlapatla</h1> | |
30 | <h1 align="center">Last Updated: 25<sup>th</sup> April 2007</h1> | |
31 | <p><br> | |
32 | <br> | |
33 | <br> | |
34 | <br> | |
35 | <br> | |
36 | <br> | |
37 | <br> | |
38 | <br> | |
39 | </p> | |
40 | <h1 align="center"><a | |
41 | name="5.HOWTO: setup run directory scsi init file|outline"></a><a | |
42 | name="5.HOWTO: setup run directory scsi init file|outline"></a> | |
43 | Advanced Technology Group</h1> | |
44 | <p | |
45 | style="border-style: none none double; border-color: -moz-use-text-color -moz-use-text-color rgb(0, 0, 0); border-width: medium medium 1.1pt; padding: 0in 0in 0.03in; margin-bottom: 0in;"> | |
46 | <br> | |
47 | </p> | |
48 | <p | |
49 | style="border-style: none none double; border-color: -moz-use-text-color -moz-use-text-color rgb(0, 0, 0); border-width: medium medium 1.1pt; padding: 0in 0in 0.03in; margin-bottom: 0in;"> | |
50 | ==========================================================================================================================================</p> | |
51 | <h1><a name="6.HOWTO: setup run directory fc init file|outline"></a><a | |
52 | name="6.HOWTO: setup run directory fc init file|outline"></a> | |
53 | Table of Contents</h1> | |
54 | <ol> | |
55 | <li> | |
56 | <p><a href="#8.Purpose%7Coutline"><b><font size="5">Purpose</font></b></a></p> | |
57 | </li> | |
58 | <li> | |
59 | <p><a href="#9.SAM%7Coutline"><b><font size="5">SAM</font></b></a></p> | |
60 | <ol type="a"> | |
61 | <li> | |
62 | <p><a href="#SAM%20Huron%7Coutline"><b><font size="5">SAM Huron</font></b></a></p> | |
63 | </li> | |
64 | </ol> | |
65 | </li> | |
66 | <li> | |
67 | <p><a href="#10.SPARC%20CPU%7Coutline"><b><font size="5">SPARC CPU</font></b></a></p> | |
68 | <ol type="a"> | |
69 | <li> | |
70 | <p><a href="#Riesling%7Coutline"><b><font size="5">Riesling</font></b></a></p> | |
71 | </li> | |
72 | <li> | |
73 | <p><a href="#Vonk%7Coutline"><b><font size="5">Vonk</font></b></a></p> | |
74 | </li> | |
75 | <li> | |
76 | <p><a href="#Vcpu%20Interface%7Coutline"><b><font size="5">Vcpu | |
77 | Interface</font></b></a></p> | |
78 | </li> | |
79 | </ol> | |
80 | </li> | |
81 | <li> | |
82 | <p><a href="#10.Running%20SAM%20Chplus%7Coutline"><b><font size="5">Running | |
83 | SAM Chplus</font></b></a></p> | |
84 | <ol type="a"> | |
85 | <li> | |
86 | <p><a href="#Getting%20Started%7Coutline"><b><font size="5">Getting | |
87 | Started</font></b></a></p> | |
88 | </li> | |
89 | <li> | |
90 | <p><a href="#Creating%20a%20Root%20Image%7Coutline"><b><font | |
91 | size="5">Creating a Root Image</font></b></a></p> | |
92 | </li> | |
93 | <li> | |
94 | <p><a href="#Data%20Disk%20Images%7Coutline"><b><font size="5">Data | |
95 | Disk Images</font></b></a></p> | |
96 | </li> | |
97 | <li> | |
98 | <p><a href="#Data%20Disk%20Images%7Coutline"><b><font size="5">Getting | |
99 | and running SAM</font></b></a></p> | |
100 | </li> | |
101 | <li> | |
102 | <p><a href="#RC%20file%20Setup%7Coutline"><b><font size="5">RC | |
103 | file Setup</font></b></a></p> | |
104 | </li> | |
105 | <li> | |
106 | <p><a href="#SCSI%20init%20file%20Setup%7Coutline"><b><font | |
107 | size="5">SCSI init file Setup</font></b></a></p> | |
108 | </li> | |
109 | <li> | |
110 | <p><a href="#FC%20init%20file%20Setup%7Coutline"><b><font | |
111 | size="5">FC init file Setup</font></b></a></p> | |
112 | </li> | |
113 | <li> | |
114 | <p><a | |
115 | href="#Disk%20Image%20file%20from%20a%20Reference%20System%7Coutline"><b><font | |
116 | size="5">Disk Image file from a Reference System</font></b></a></p> | |
117 | </li> | |
118 | <li> | |
119 | <p><a | |
120 | href="#Modifying%20root%20image%20to%20boot%20on%20SAM%7Coutline"><b><font | |
121 | size="5">Modifying root image to boot on SAM</font></b></a></p> | |
122 | </li> | |
123 | <li> | |
124 | <p><a href="#Check-pointing%20using%20Dump/Restore%7Coutline"><b><font | |
125 | size="5">Check-pointing using Dump/Restore</font></b></a></p> | |
126 | <ul> | |
127 | <li> | |
128 | <p><a href="#Lazy%20Restore%7Coutline"><b><font size="5">Lazy | |
129 | Restore</font></b></a></p> | |
130 | </li> | |
131 | </ul> | |
132 | </li> | |
133 | </ol> | |
134 | </li> | |
135 | <li> | |
136 | <p><a href="#11.Running%20SAM%20Huron%7Coutline"><b><font size="5">Running | |
137 | SAM Huron</font></b></a></p> | |
138 | <ol type="a"> | |
139 | <li> | |
140 | <p><a href="#Getting%20and%20running%20SAM%20Huron%7Coutline"><b><font | |
141 | size="5">Getting and running SAM Huron</font></b></a></p> | |
142 | </li> | |
143 | <li> | |
144 | <p><a href="#Huron%20RC%20file%20Setup%7Coutline"><b><font | |
145 | size="5">Huron RC file Setup</font></b></a></p> | |
146 | </li> | |
147 | <li> | |
148 | <p><a | |
149 | href="#Modifying%20root%20image%20to%20boot%20on%20SAM%20Huron%7Coutline"><b><font | |
150 | size="5">Modifying root image to boot on SAM Huron</font></b></a></p> | |
151 | </li> | |
152 | </ol> | |
153 | </li> | |
154 | <li> | |
155 | <p><a href="#12.Tracing%7Coutline"><b><font size="5">Tracing</font></b></a></p> | |
156 | <ol type="a"> | |
157 | <li> | |
158 | <p><a href="#Trace%20Collection%20and%20Validation%7Coutline"><b><font | |
159 | size="5">Trace Collection and Validation</font></b></a></p> | |
160 | </li> | |
161 | </ol> | |
162 | </li> | |
163 | <li> | |
164 | <p><a href="#14.HOWTOs%7Coutline"><b><font size="5">HOWTOs</font></b></a></p> | |
165 | <ol type="a"> | |
166 | <li> | |
167 | <p><a href="#Open%20extra%20Console%20Windows%7Coutline"><b><font | |
168 | size="5">Open extra Console Windows</font></b></a></p> | |
169 | </li> | |
170 | </ol> | |
171 | </li> | |
172 | </ol> | |
173 | <p><font size="4">================================================================================================================</font></p> | |
174 | <h1><a name="8.Purpose|outline"></a>Purpose</h1> | |
175 | <p>The purpose of this document is to create a “cook book” | |
176 | for SAM setup and tracing. This document will go over all the | |
177 | necessary steps on how to get SAM up and running so you can start | |
178 | tracing. Also note that SAM and blaze refer to the same thing and are | |
179 | used interchangeably in this document. The document describes SAM and | |
180 | it's features followed by descriptions on how to run SAM. Tracing and | |
181 | validation guidelines are explained in great detail followed by | |
182 | execution driven simulation. SAM combined with ValueSim can be hooked | |
183 | up to a cycle accurate simulator and used in execution driven mode.</p> | |
184 | <p>==========================================================================================================================================</p> | |
185 | <h1><a name="9.SAM|outline"></a>SAM</h1> | |
186 | <p>SAM is a full system (CPU, memory, network, hard disk, timer) | |
187 | simulator developed at SUN and currently maintained by the Advanced | |
188 | Technology group (ATG). It simulates various SPARC V9-based systems | |
189 | running the Solaris operating system. It is primarily used for | |
190 | collecting architectural traces from workloads such as TPCC, SPECWeb, | |
191 | ICPERF, SPECJAppServer, ICPERF, SPECJbb, SPEC CPU, etc. SAM is also | |
192 | being used in RTL verification and in system bringup. It boots a fake | |
193 | boot prom or Sun-Fire OBP, and then the real OS. Since SAM-v5 runs | |
194 | off-the-shelf OS, most high-level functionality built on top is | |
195 | available in the simulation including TCP/IP, file systems, kernel | |
196 | modules, multiple-users, NIS, etc.</p> | |
197 | <p>SAM simulates a system consisting of the following:</p> | |
198 | <ul> | |
199 | <li> | |
200 | <p>One or more SPARC CPUs.</p> | |
201 | </li> | |
202 | <li> | |
203 | <p>Physical memory (RAM)</p> | |
204 | </li> | |
205 | <li> | |
206 | <p>Bridge</p> | |
207 | </li> | |
208 | <li> | |
209 | <p>Switch</p> | |
210 | </li> | |
211 | <li> | |
212 | <p>A serial console device</p> | |
213 | </li> | |
214 | <li> | |
215 | <p>The disk subsystem (e.g. SCSI or FibreChannel)</p> | |
216 | </li> | |
217 | <li> | |
218 | <p>The network cards (e.g. gem or cassini)</p> | |
219 | </li> | |
220 | </ul> | |
221 | <p>SAM-v5 is a new SAM revision with enhanced user interface for | |
222 | system configuration and new expandable and flexible infrastructure. | |
223 | Note that some devices are system specific and so are modeled | |
224 | accordingly and used in that particular SAM system. Further details | |
225 | in the sections that follow.</p> | |
226 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
227 | <h2>SAM Huron</h2> | |
228 | <p>SAM-Huron (Sun Fire T2000) system configuration uses the Niagara | |
229 | (UltraSPARC-T2) chip as the CPU. SAM Huron consists of SAM system | |
230 | simulator plus the <a href="#Vonk%7Coutline">Vonk</a> processor | |
231 | reference model. The following is the component list of modules in | |
232 | SAM Huron:</p> | |
233 | <ul> | |
234 | <li> | |
235 | <p>Vonk – Niagara 2 Processor Model</p> | |
236 | </li> | |
237 | <li> | |
238 | <p>PCIE-PCIE Switch</p> | |
239 | </li> | |
240 | <li> | |
241 | <p>PCIE-PCI Bridge</p> | |
242 | </li> | |
243 | <li> | |
244 | <p>SCSI Controller</p> | |
245 | </li> | |
246 | <li> | |
247 | <p>FC Controller</p> | |
248 | </li> | |
249 | <li> | |
250 | <p>SCSI Disk</p> | |
251 | </li> | |
252 | <li> | |
253 | <p>FC Disk</p> | |
254 | </li> | |
255 | <li> | |
256 | <p>Networking – GE/CE/E1000g adapters</p> | |
257 | </li> | |
258 | <li> | |
259 | <p>Miscellaneous – LL, RTC, Serial etc. </p> | |
260 | </li> | |
261 | </ul> | |
262 | <p>For further details please refer to | |
263 | <a | |
264 | href="https://systemsweb.sfbay.sun.com/archperf/TOI/talk-2007/qe-sam-toi.odp">https://systemsweb.sfbay.sun.com/archperf/TOI/talk-2007/qe-sam-toi.odp</a></p> | |
265 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
266 | <p>==========================================================================================================================================</p> | |
267 | <h1><a name="10.SPARC CPU|outline"></a>SPARC CPU</h1> | |
268 | <p>We have the following four SPARC CPU models currently modelled in | |
269 | SAM:</p> | |
270 | <ul> | |
271 | <li> | |
272 | <p>Niagara II, Huron Systems (Vonk N2)</p> | |
273 | </li> | |
274 | </ul> | |
275 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
276 | <h2><a name="Riesling|outline"></a><a name="Riesling|outline"></a>Riesling/Vonk</h2> | |
277 | <p>Riesling is the SPARC CPU architecture model in the SAM Ontario | |
278 | (T1) full-system simulator. Vonk is used for both Niagara II and ROCK | |
279 | CPU models. Vonk N2 is the SPARC CPU architecture model in the SAM | |
280 | Huron (T2) full-system simulator. Vonk ROCK is the SPARC CPU | |
281 | architecture model in the SAM Supernova full-system simulator. | |
282 | Riesling/Vonk is the overall name for the Sun UltraSPARC processor | |
283 | golden reference model product, it implements the full UltraSPARC | |
284 | architecture specification. On top of the UltraSPARC specification, | |
285 | Riesling/Vonk implements the deltas from that specification as | |
286 | mentioned in each product specific PRM (Programming Reference | |
287 | Manual), but usually only the parts that are related to processor | |
288 | functions. </p> | |
289 | <p>Riesling/Vonk always implements a full system model in turn of CPU | |
290 | architecture. A Riesling/Vonk system consists of a number of | |
291 | Riesling/Vonk CPUs. A Riesling/Vonk CPU consists of a number of | |
292 | Riesling/Vonk cores. A Riesling/Vonk core consists of a number of | |
293 | Riesling/Vonk strands. The structure and functionality of the | |
294 | Riesling/Vonk system that is provided in the Riesling/Vonk library | |
295 | reflects the hardware it functionally models. Riesling/Vonk also | |
296 | provides a simple memory model. A system is a combination of CPU | |
297 | model(s) and memory model(s). Together the CPU models and memory | |
298 | model(s) in the Riesling/Vonk library allow for a standalone | |
299 | simulator of CPUs with memory to be built out of the box. | |
300 | Riesling/Vonk itself does not provide device model functionality. </p> | |
301 | <p>Riesling/Vonk does not model time. A single step (cycle) in | |
302 | Riesling/Vonk means: Fetch, Decode, Execute, and Retire the | |
303 | architectural state, in one single operation. In essence, | |
304 | Riesling/Vonk is a functional simulator, it does not provide any | |
305 | performance indication of the modeled CPU architecture. Caches are | |
306 | not modeled in Riesling/Vonk. Caches are functionally not required by | |
307 | the UltraSPARC specification. This means that cache coherency is also | |
308 | not modeled in Riesling/Vonk. Riesling/Vonk generally does not model | |
309 | functions related to errors and diagnostics. However, some functions | |
310 | related to those areas are implemented due to special modeling | |
311 | requirements. </p> | |
312 | <p>Riesling/Vonk library is a collection of C++ classes. The classes | |
313 | are constructed in a way that mimics hardware structure. For | |
314 | Riesling, default UltraSPARC Ontario system configuration (one CPU, | |
315 | eight cores per CPU, four strands per core) is implemented in the | |
316 | library, users have the capability to extend the classes to create | |
317 | their own T1-like systems. For Vonk N2, default UltraSPARC Huron | |
318 | system configuration (one CPU, eight cores per CPU, eight strands per | |
319 | core) is implemented in the library, users have the capability to | |
320 | extend the classes to create their own T2-like systems.</p> | |
321 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
322 | <h2><a name="Vcpu Interface|outline"></a>Vcpu Interface</h2> | |
323 | <p>Vcpu hides the details of the cpu specific implementation. It | |
324 | presents an abstract interface to the "virtual cpu".</p> | |
325 | <ul> | |
326 | <li> | |
327 | <p>for cpu with multiple strands it represents each strands</p> | |
328 | </li> | |
329 | </ul> | |
330 | <ul> | |
331 | <li> | |
332 | <p>for cpu without strands it represent the cpu</p> | |
333 | </li> | |
334 | </ul> | |
335 | <p>Vcpu interface has a few components:</p> | |
336 | <ul> | |
337 | <li> | |
338 | <p>control interface</p> | |
339 | </li> | |
340 | <li> | |
341 | <p>system interface ( Memory and IO )</p> | |
342 | </li> | |
343 | <li> | |
344 | <p>trace interface</p> | |
345 | </li> | |
346 | </ul> | |
347 | <p>For further details on usage and other features refer to | |
348 | <a | |
349 | href="https://systemsweb.sfbay.sun.com/archperf/TOI/Oct2006/VcpuInterface.html">https://systemsweb.sfbay.sun.com/archperf/TOI/Oct2006/VcpuInterface.html</a></p> | |
350 | <p>==========================================================================================================================================</p> | |
351 | <h1><a name="10.Running SAM Chplus|outline"></a>Running SAM Chplus</h1> | |
352 | <p>To run SAM, launch the SAM binary from the SAM run directory. | |
353 | Ofcourse before running SAM Chplus we need a solaris root image, | |
354 | configuration files etc. The following sections explain in detail the | |
355 | steps that need to be done. Most of the steps are common to running | |
356 | SAM irrespective of whether it is SAM Chplus or SAM Huron etc.</p> | |
357 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
358 | <h2><a name="Getting Started|outline"></a><a | |
359 | name="Getting Started|outline"></a> | |
360 | Getting Started</h2> | |
361 | <p>You will need at least Solaris 2.8 and above with at least 512 MB | |
362 | of RAM on each machine. However, to simulate machine the host side | |
363 | would consume about ¾<sup>th</sup> of the total memory size. | |
364 | So, size accordingly. Some planning and set-up is necessary before | |
365 | running SAM. This involves specifying the system configuration, | |
366 | setting up all necessary input files, and making sure the host | |
367 | machine and the working directory on which the simulation is run are | |
368 | adequate for the task. <br> | |
369 | <br> | |
370 | There are two principle ways to run | |
371 | SAM: restore from a pre-existing checkpoint, and start a fresh run | |
372 | from scratch. Most often, you will restore from existing checkpoints | |
373 | in order to collect traces or run simulations. Restoring from a | |
374 | checkpoint is easiest because the system configuration is | |
375 | pre-determined and you simply need to sym-link or copy over the | |
376 | necessary files into the working directory before running the | |
377 | simulation. For a run from scratch, it is advisable to start with an | |
378 | existing configuration as a template, and modify the necessary | |
379 | configuration parameters (such as cpu count and frequency, device | |
380 | hierarchy etc.). When restoring from a checkpoint, there are other | |
381 | considerations that apply (see Lazy Restore).<br> | |
382 | <br> | |
383 | In both cases, | |
384 | the system-configuration file (usually called config.rc) is a good | |
385 | starting point. This file specifies the type and number of simulated | |
386 | CPUs, the amount of simulated memory, the number of simulated | |
387 | devices, pointers to the mapping of real disk images to simulated | |
388 | disks etc. This file also specifies the number of host threads onto | |
389 | which the simulated CPUs are mapped. You should always ensure that | |
390 | the number of host threads used is at least equal to the number of | |
391 | real available CPUs on the host system. Furthermore, some | |
392 | applications like execution-driven simulation may require a single | |
393 | host thread for all the simulated CPUs. <br> | |
394 | <br> | |
395 | By default, SAM will | |
396 | try to allocate as much real memory as the simulated RAM. If you | |
397 | decide to go with this default, ensure that the host machine has | |
398 | enough RAM+SWAP (and also enough free swap) to accommodate this | |
399 | amount. It is possible to map simulated memory to a disk file rather | |
400 | than physical memory, in which case you need to allow enough space in | |
401 | the working directory for the memory-mapped file. When the simulated | |
402 | application writes to the simulated disks, the updates are written to | |
403 | files called "overlays" in the working directory. You need | |
404 | to anticipate the needs of the program and allow enough free space in | |
405 | the working directory for the overlays. <br> | |
406 | <br> | |
407 | For example, if the | |
408 | simulated application is a database that performs 1000 writes of 8KB | |
409 | per simulated second and you are simulating 1200 seconds, you need | |
410 | enough space for 1.2M updates, or 1.2M x 8KB = 9.6 GB of free space | |
411 | for overlays. <br> | |
412 | <br> | |
413 | The latest release is in | |
414 | /import/archperf/pkgs/sam/latest</p> | |
415 | <p>For insturctions on how to bringover sam and build it yourself | |
416 | refer to: <a href="#Getting%20and%20running%20SAM%7Coutline">Getting | |
417 | and | |
418 | running SAM</a></p> | |
419 | <p>For the list of files needed for SAM Chplus run directory refer | |
420 | to: <a href="#Getting%20and%20running%20SAM%7Coutline">Getting and | |
421 | running | |
422 | SAM</a></p> | |
423 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
424 | <h2><a name="Creating a Root Image|outline"></a><a | |
425 | name="Creating a Root Image|outline"></a> | |
426 | Creating a Root Image</h2> | |
427 | <p>You will need to do serveral steps to create the root image before | |
428 | running Blaze. Also, you will need to login as root before | |
429 | proceeding. Note that root.img and swap.img are part of the file list | |
430 | needed to run SAM. </p> | |
431 | <p>For further details on creating a root image refer to: <a | |
432 | href="#HOWTO:%20create%20a%20root%20disk%20image%20file%20from%20a%20reference%20system%7Coutline">#HOWTO: | |
433 | create a root disk image file from a reference system|outline</a></p> | |
434 | <p>When we use fakeprom to build the SAM device tree we need to make | |
435 | modifications to the root image and for details on modifying the root | |
436 | image refer to: <a | |
437 | href="#HOWTO:%20modify%20reference%20root%20image%20into%20SAM%20root%20image%7Coutline">#HOWTO: | |
438 | modify reference root image into SAM root image|outline</a></p> | |
439 | <p>When you modify root image you will notice a driver by name ll | |
440 | being loaded. This driver is used to give access to local host file | |
441 | system from SAM simulated environment.</p> | |
442 | <p>Blaze supports LLFS (localhost lookup file system) letting you | |
443 | read/write files on your host machine directly from the simulated | |
444 | host. Thus, the simhost can access /import/arch-trace25, | |
445 | /import/arch-trace30/ and /tmp/logman on your host. More importantly, | |
446 | LLFS lets you run SAM as a user program and have access to all NFS | |
447 | files on SWAN, which is where your benchmark programs probably | |
448 | reside. </p> | |
449 | <p>We map / on the host to /ll/root in simhost via LLFS. E.g. to | |
450 | access your home directory from /home/xyz. You would go to | |
451 | /ll/root/home/xyz in SAM. </p> | |
452 | <p>As a added convenience, we (use symbolic links to) map the | |
453 | following directories in the sim host to the same directory on the | |
454 | underlying host: </p> | |
455 | <p>/home, /net, /vol, /ws, /import, /usr/ccs, /usr/share, | |
456 | /usr/shared, /usr/dist</p> | |
457 | <p>Thus, in the simhost, you can get to your home directory via | |
458 | /home/xyz as well as /ll/root/home/xyz. Tycho wrote the nifty LLFS | |
459 | (local lookup file system). Tycho implemented LLFS correctly, by | |
460 | implementing the Solaris LL file system, the Solaris LL device driver | |
461 | and the LL device (in SAM). /home /net /vol /ws /import /usr/ccs | |
462 | /usr/share /usr/shared /usr/dist.</p> | |
463 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
464 | <h2><a name="Data Disk Images|outline"></a><a | |
465 | name="Data Disk Images|outline"></a><a name="Data Disk Images|outline"></a> | |
466 | Data Disk Images</h2> | |
467 | <p>We use the same dd procedure for collecting data disk images. The | |
468 | database disks can be under SVM (Solaris Volume Manager) or under | |
469 | Veritas. For SVM you can use metadb to get a listing. For Veritas you | |
470 | can use vxprint to get a list of all disks under Veritas. You can | |
471 | then select the disks you want to take disk images of i.e. only those | |
472 | belonging to the database of interest.</p> | |
473 | <p>For information on setting scsidisk.init with respect to SVM and | |
474 | Veritas refer to: <a href="#SCSI%20init%20file%20Setup%7Coutline">SCSI | |
475 | init | |
476 | file Setup</a></p> | |
477 | <p>For information on setting fcdisk.init with respect to SVM and | |
478 | Veritas refer to: <a href="#FC%20init%20file%20Setup%7Coutline">FC | |
479 | init file | |
480 | Setup</a></p> | |
481 | <p>Also during root image modification note that SVM requires | |
482 | /etc/path_to_inst file entries for the database disks. The disks | |
483 | should also have the same minor numbers as they had on the host | |
484 | reference machine. For further details on this refer to: <a | |
485 | href="#HOWTO:%20modify%20reference%20root%20image%20into%20SAM%20root%20image%7Coutline">#HOWTO: | |
486 | modify reference root image into SAM root image|outline</a></p> | |
487 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
488 | <h2><a name="Getting and running SAM|outline"></a><a | |
489 | name="Getting and running SAM|outline"></a> | |
490 | Getting and running SAM</h2> | |
491 | <p>Go to the directory where you want the SAM to be installed and run | |
492 | the following command. Note that SAM chplus, SAM vonk etc. are all in | |
493 | one workspace.</p> | |
494 | <p><i><b># bringover -p /import/archperf/ws/sam -w ./<samdir> .</b></i></p> | |
495 | <p><i><b># cd <samdir></b></i></p> | |
496 | <p><i><b># make install-chplus</b></i></p> | |
497 | <p style="font-style: normal;">The above command | |
498 | will build the Chplus version of SAM. Similarly you can build for N2 | |
499 | using make install-n2 command. Refer to Makefile.targetspecs for a | |
500 | list of all target builds. The above command will create a directory | |
501 | install-chplus. You will find the following directories under | |
502 | install-chplus directory: bin, doc, etc, lib, man, pfe, rtl. The bin | |
503 | directory has the sam binary and the lib directory has all the | |
504 | loadable modules for devices. </p> | |
505 | <p style="font-style: normal;">Before you can run | |
506 | SAM the run directory must contain the following files:</p> | |
507 | <ol> | |
508 | <li> | |
509 | <p><font face="Thorndale, serif"><font size="3"><b>bin/sam:</b> sam | |
510 | binary</font></font></p> | |
511 | </li> | |
512 | <li> | |
513 | <p><font face="Thorndale, serif"><font size="3"><b>lib/*.so:</b> | |
514 | the lib directory contains all the loadable modules (*.so)</font></font></p> | |
515 | </li> | |
516 | <li> | |
517 | <p><font face="Thorndale, serif"><b>config.rc:</b> the rc file | |
518 | where system configuration is specified. </font><a | |
519 | href="#RC%20file%20Setup%7Coutline">RC file Setup</a></p> | |
520 | </li> | |
521 | <li> | |
522 | <p><font face="Thorndale, serif"><b>scsidisk.init:</b> there could | |
523 | be more than one of these files. </font><a | |
524 | href="#SCSI%20init%20file%20Setup%7Coutline">SCSI init file Setup</a></p> | |
525 | </li> | |
526 | <li> | |
527 | <p><font face="Thorndale, serif"><b>fcdisk.init:</b> there could be | |
528 | more than one of these files. </font><a | |
529 | href="#FC%20init%20file%20Setup%7Coutline">FC init file Setup</a></p> | |
530 | </li> | |
531 | <li> | |
532 | <p><b>fakeprom or samprom:</b> this file is needed when we use the | |
533 | fakeprom device tree (only used in sam chplus based systems), not | |
534 | needed if we boot using OBP</p> | |
535 | </li> | |
536 | <li> | |
537 | <p><b>ufsboot:</b> this file has to be copied from the root image | |
538 | /tmp/root-image/platform/sun4u/ufsboot</p> | |
539 | </li> | |
540 | <li> | |
541 | <p><b>root.img:</b> link to or a copy of the modified root image. <a | |
542 | href="#Disk%20Image%20file%20from%20a%20Reference%20System%7Coutline">Disk | |
543 | Image file from a Reference System</a></p> | |
544 | </li> | |
545 | <li> | |
546 | <p><b>swap.img:</b> link to or a copy of swap image. <a | |
547 | href="#Disk%20Image%20file%20from%20a%20Reference%20System%7Coutline">Disk | |
548 | Image file from a Reference System</a></p> | |
549 | </li> | |
550 | </ol> | |
551 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3"><u><b>Without | |
552 | networking:</b></u></font></font></font></p> | |
553 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3"><i><b># | |
554 | bin/sam -w -c config.rc</b></i></font></font></font></p> | |
555 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">The | |
556 | -w automatically brings up the console window of the simulated | |
557 | machine. Make sure you have set your DISPLAY environment variable | |
558 | correctly.</font></font></font></p> | |
559 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">At | |
560 | blaze prompt: run</font></font></font></p> | |
561 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3"><u><b>With | |
562 | networking:</b></u></font></font></font></p> | |
563 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">Make | |
564 | sure you have created a file called hostname.ge0 in /etc/system | |
565 | directory on root image and the file should have the machine name in | |
566 | it.</font></font></font></p> | |
567 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">It | |
568 | could be ge0 or ce0 depending the NIC card gem or cassini being used. | |
569 | It could be ge0 or ge1 depending on the name specified in rc file for | |
570 | the device.</font></font></font></p> | |
571 | <ol> | |
572 | <li> | |
573 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
574 | size="3">Start switchsim on any machine using command: <b><i># | |
575 | /import/blaze-trace/blz-binaries/switch-v1.6 -r ip</i></b>. Switch does | |
576 | the following:</font></font></font></p> | |
577 | <ol> | |
578 | <ol type="a"> | |
579 | <li> | |
580 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
581 | size="3">connects multiple blaze simulated environments together</font></font></font></p> | |
582 | </li> | |
583 | <li> | |
584 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
585 | size="3">models network delay</font></font></font></p> | |
586 | </li> | |
587 | <li> | |
588 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
589 | size="3">sync multiple blazes on time boundaries</font></font></font></p> | |
590 | </li> | |
591 | <li> | |
592 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
593 | size="3">behaves as a traditional switch in a real network</font></font></font></p> | |
594 | </li> | |
595 | </ol> | |
596 | </ol> | |
597 | </li> | |
598 | <li> | |
599 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
600 | size="3">Start blaze and connect to switch</font></font></font></p> | |
601 | </li> | |
602 | </ol> | |
603 | <pre style="margin-left: 0.5in;"><i><b># bin/sam -w -c config.rc</b></i> | |
604 | At blaze prompt: “simge connect <machine name>” where <machine name> is the machine on which switchsim is running | |
605 | At blaze prompt: “sync connect <machine name>” where <machine name> is the machine on which switchsim is running | |
606 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">At blaze prompt: “conf” ensure correct values for all parameters, if not, change using “conf <parameter> <value>”</font></font></font> | |
607 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">At blaze prompt: run</font></font></font></pre> | |
608 | <ol start="3"> | |
609 | <li> | |
610 | <pre style="margin-bottom: 0.2in;"><font color="#000000"><font | |
611 | face="Thorndale, serif"><font size="3">Bringup ge/ce NIC</font></font></font></pre> | |
612 | </li> | |
613 | </ol> | |
614 | <pre style="margin-left: 0.5in;">After boot login as root in the simulated machine and then run the following commands in the simulated machine:<br>devfsadm -i ge<br>ifconfig ge0 plumb<br>ifconfig ge0 inet <ip address> netmask <net mask><br>ifconfig ge0 ether <mac address>, mac address is currently not being used in SAM<br>ifconfig ge0 up</pre> | |
615 | <ol start="4"> | |
616 | <li> | |
617 | <p>Start other blazes and connect them using steps 2 and 3 above.</p> | |
618 | </li> | |
619 | <li> | |
620 | <p>Check to see if the simulated machines are communicating using | |
621 | traditional ping etc.</p> | |
622 | </li> | |
623 | </ol> | |
624 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
625 | <h2><a name="RC file Setup|outline"></a><a name="RC file Setup|outline"></a><a | |
626 | name="RC file Setup|outline"></a> | |
627 | RC file Setup</h2> | |
628 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">Here | |
629 | is a sample TPCC rc file. I included TPCC because it covers all the | |
630 | facets of the setup.</font></font></font></p> | |
631 | <pre>############################################### start of rc file ###########################################################<br><br>conf ramsize 65536M<br><br>conf mmutype cheetahplus<br><br>conf bootpath /pci@1f,600000/scsi@1/disk@d,0:a<br><br>conf cpu_per_thread 1<br><br>conf stickfreq 12500000<br><br>load 0x0e00000 fakeprom 0xffd00000<br>load 0x00120000 ufsboot 0x00120000<br><br>write word 0x00 0x120000<br>write word 0x04 0x120000<br>write word 0x08 0x34ffff<br>write word 0x0c 0x120000<br>write word 0x10 0x2<br>write word 0x38 0x1234<br>write byte 0x3c 0x80<br><br>sysconf -p ./<br><br>sysconf cpu name=cpu0 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br>sysconf cpu name=cpu1 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br>sysconf cpu name=cpu2 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br>sysconf cpu name=cpu3 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br>sysconf cpu name=cpu4 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br>sysconf cpu name=cpu5 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br>sysconf cpu name=cpu6 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br>sysconf cpu name=cpu7 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32<br><br>conf mips 300<br><br>setreg pc 0xe00020<br>setreg npc 0xe00024<br><br>sysconf excalibur excalibur0<br><br>sysconf pci_bus pciA31 bridge=schizo31 -d0<br>sysconf pci_bus pciB31 bridge=schizo31 -d0<br>sysconf pci_bus pciA30 bridge=schizo30 -d0<br>sysconf pci_bus pciB30 bridge=schizo30 -d0<br>sysconf pci_bus pciA29 bridge=schizo29 -d0<br>sysconf pci_bus pciB29 bridge=schizo29 -d0<br>sysconf pci_bus pciA28 bridge=schizo28 -d0<br>sysconf pci_bus pciB28 bridge=schizo28 -d0<br><br>sysconf schizo schizo31 aid=31 pciA=pciA31 pciB=pciB31 -d0<br>sysconf schizo schizo30 aid=30 pciA=pciA30 pciB=pciB30 -d0<br>sysconf schizo schizo29 aid=29 pciA=pciA29 pciB=pciB29 -d0<br>sysconf schizo schizo28 aid=28 pciA=pciA28 pciB=pciB28 -d0<br><br>sysconf scsi scsi0 bus=pciA31 schizo=schizo31 dev=1 targets=scsidisk.init boothba -d0<br><br>sysconf rtc rtc0 bus=pciA31 dev=3 fun=0 <br><br>sysconf gem ge1 bus=pciB31 dev=4 fun=0 <br><br>sysconf serial console bus=pciB31 dev=5 fun=0 sam-console<br><br>sysconf ll PBBll bus=pciB31 dev=6 fun=0 <br><br>sysconf fc PBBfc01 bus=pciA30 schizo=schizo30 dev=1 targets=fcdisk1.multi1.init<br>sysconf fc PBBfc02 bus=pciA30 schizo=schizo30 dev=2 targets=fcdisk1.multi2.init<br>sysconf fc PBBfc03 bus=pciA30 schizo=schizo30 dev=3 targets=fcdisk1.multi3.init<br>sysconf fc PBBfc04 bus=pciA30 schizo=schizo30 dev=4 targets=fcdisk1.multi4.init<br>sysconf fc PBBfc05 bus=pciB30 schizo=schizo30 dev=5 targets=fcdisk1.multi5.init<br>sysconf fc PBBfc06 bus=pciB30 schizo=schizo30 dev=6 targets=fcdisk1.multi6.init<br>sysconf fc PBBfc07 bus=pciB30 schizo=schizo30 dev=7 targets=fcdisk1.multi7.init<br>sysconf fc PBBfc08 bus=pciB30 schizo=schizo30 dev=8 targets=fcdisk1.multi8.init<br><br>sysconf fc PBBfc09 bus=pciA29 schizo=schizo29 dev=1 targets=fcdisk1.multi9.init<br>sysconf fc PBBfc10 bus=pciA29 schizo=schizo29 dev=2 targets=fcdisk2.multi1.init<br>sysconf fc PBBfc11 bus=pciA29 schizo=schizo29 dev=3 targets=fcdisk2.multi2.init<br>sysconf fc PBBfc12 bus=pciA29 schizo=schizo29 dev=4 targets=fcdisk2.multi3.init<br>sysconf fc PBBfc13 bus=pciB29 schizo=schizo29 dev=5 targets=fcdisk2.multi4.init<br>sysconf fc PBBfc14 bus=pciB29 schizo=schizo29 dev=6 targets=fcdisk2.multi5.init<br>sysconf fc PBBfc15 bus=pciB29 schizo=schizo29 dev=7 targets=fcdisk2.multi6.init<br>sysconf fc PBBfc17 bus=pciB29 schizo=schizo29 dev=8 targets=fcdisk2.multi7.init<br><br>sysconf fc PBBfc18 bus=pciA28 schizo=schizo28 dev=1 targets=fcdisk2.multi8.init<br>sysconf fc PBBfc19 bus=pciA28 schizo=schizo28 dev=2 targets=fcdisk3.multi1.init<br>sysconf fc PBBfc20 bus=pciA28 schizo=schizo28 dev=3 targets=fcdisk3.multi2.init<br>sysconf fc PBBfc21 bus=pciA28 schizo=schizo28 dev=4 targets=fcdisk3.multi3.init<br>sysconf fc PBBfc22 bus=pciB28 schizo=schizo28 dev=5 targets=fcdisk3.multi4.init<br>sysconf fc PBBfc23 bus=pciB28 schizo=schizo28 dev=6 targets=fcdisk3.multi5.init<br>sysconf fc PBBfc24 bus=pciB28 schizo=schizo28 dev=7 targets=fcdisk3.multi6.init<br>sysconf fc PBBfc25 bus=pciB28 schizo=schizo28 dev=8 targets=fcdisk3.multi7.init<br><br>sysconf fc PBBfc26 bus=pciB31 schizo=schizo31 dev=8 targets=fcdisk3.multi8.init<br><br>console-send "kernel/sparcv9/unix -vV\n"<br><br>################################################### end of rc file ###########################################################</pre> | |
632 | <p><br> | |
633 | <br> | |
634 | </p> | |
635 | <p><font face="Thorndale, serif">Here is an explanation of each of | |
636 | the above lines:</font></p> | |
637 | <pre><b>conf ramsize 65536M</b> – size of RAM or Memory on simulated machine<br><br><font | |
638 | face="Cumberland, monospace"><font size="2"><b>conf mmutype cheetahplus</b> – mmu type for simulated machine</font></font> | |
639 | ||
640 | <b>conf bootpath /pci@1f,600000/scsi@1/disk@d,0:a</b> – specifies the path of the boot device (root image), in this case c1t13d0s0<br><br><b>conf cpu_per_thread 1</b> – blaze is a multi-threaded (MP-on_MP) application. In this case the rc file specifies 8 cpus and the <br>cpu_per_thread of 1 means blaze creates 8 threads for 8 cpus i.e. 1 thread to handle each cpu. If the cpu_per_thread value <br>were 2 blaze will create 4 threads to handle 8 cpus i.e. 2 cpus per thread. Apart from the cpu threads blaze creates 1 thread <br>per disk controller (scsi and/or fc). The UI in blaze runs on a separate thread.<br><br><b>conf stickfreq 12500000</b> – run the binary /home/vsreeni/bin/stick on the reference machine and the output is the stick frequency.<br>Solaris uses STICK and STICK_COMPARE registers to keep track of time. stickfreq value defines the frequency at which the STICK<br>register update happens.<br><br><b>load 0x0e00000 fakeprom 0xffd00000</b> – where 0xffd00000 is the start adress in fakeprom (always verify this using <br>dis fakeprom, if different then change this. Fakeprom is loaded at address 0x0e00000 in memory of simulated machine.<br><br><b>load 0x00120000 ufsboot 0x00120000</b> – explanation same as for fakeprom. Just as for fakeprom you need to verify <br>start address of ufsboot by doing dis ufsboot.<br><br><b>sysconf -p ./</b> - indicates the directory in which the loadable modules are present in this case ./ i.e. current directory. In <br>latest blaze I think this is not changeable i.e. the search path for loadable modules is hard-coded to ./lib<br><br><b>sysconf cpu name=cpu0 cpu-type=SUNW,UltraSPARC-III+ clock-frequency=3000000000 dtlb-entries=32 itlb-entries=32</b> – cpu specification<br><br><b>conf mips 300</b> – Make sure this conf line is always specified after the cpu specification lines in the rc file. Useful in cpi <br>calculation. CPI is calculated by the formula: CPU clock frequency in Mhz / mips. For example in the above rc file the CPI will be<br>3000 / 300 = 10.<br><br><b>setreg pc 0xe00020</b> – this does not change unless for some reason fakeprom had to be loaded at an address different from 0x0e00000 <br>in memory of simulated machine <br><br><b>setreg npc 0xe00024</b> – explanation same as for setreg pc above.<br><br><font | |
641 | face="Cumberland, monospace"><font size="2"><b>sysconf excalibur excalibur0</b> – loading of excalibur module</font></font> | |
642 | ||
643 | <b>sysconf pci_bus pciA31 bridge=schizo31 -d0</b> – pci bus specification and the bridge it is attached. -d0 specifies the debug level.<br><br><b>sysconf schizo schizo31 aid=31 pciA=pciA31 pciB=pciB31 -d0</b> – specification for schizo bridge chip and the names of pci buses <br>attached to the bridge.<br><br><b>sysconf scsi scsi0 bus=pciA31 schizo=schizo31 dev=1 targets=scsidisk.init boothba -d0</b> – specification for scsi controller, states <br>that scsi controller scsi0 is on bus pciA31 of schizo31 bridge chip. All the disks attached to this controller are specified in <br>scsidisk.init. <a | |
644 | href="#5.HOWTO:%20setup%20run%20directory%20scsi%20init%20file%7Coutline">#5.HOWTO: setup run directory scsi init file|outline</a> | |
645 | ||
646 | <b>sysconf rtc rtc0 bus=pciA31 dev=3 fun=0</b> – specification for real time clock device module<br><br><b>sysconf gem ge1 bus=pciB31 dev=4 fun=0</b> – specification for gem device module which is ethernet card<br><br><b>sysconf serial console bus=pciB31 dev=5 fun=0 sam-console</b> – specification for serial console, the console of the simulated machine<br><br><b>sysconf ll PBBll bus=pciB31 dev=6 fun=0</b> – specification for access to local file system, ll module<br><br><b>sysconf fc PBBfc01 bus=pciA30 schizo=schizo30 dev=1 targets=fcdisk1.multi1.init</b> – similar to scsi controller this is a <br>specification fc controller PCCfc01 which is attached to bus pciA30 of schizo30 bridge chip. The fc disks attached to this <br>controller are in fcdisk1.multi1.init. <a | |
647 | href="#6.HOWTO:%20setup%20run%20directory%20fc%20init%20file%7Coutline">#6.HOWTO: setup run directory fc init file|outline</a> | |
648 | ||
649 | There can be a maximum of 8 devices attached to each bus of schizo bridge chip i.e. a total maximum of 16 devices per schizo.</pre> | |
650 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
651 | <h2><a name="SCSI init file Setup|outline"></a><a | |
652 | name="SCSI init file Setup|outline"></a><a | |
653 | name="SCSI init file Setup|outline"></a><a | |
654 | name="SCSI init file Setup|outline"></a><a | |
655 | name="SCSI init file Setup|outline"></a> | |
656 | SCSI init file Setup</h2> | |
657 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">Here | |
658 | is a sample TPCC and a sample SAP scsi disk init file.</font></font></font></p> | |
659 | <pre>################################## start of TPCC scsidisk.init file ##############################<br><br>t13d0s0 ./root.img.fc<br>t13d0s1 ./swap.img<br>t0d0s2 /net/cop4/Simics/install/import/pauly-girl1/pauly.home2.s0 vtoc<br>t0d0s3 /net/cop4/Simics/install/import/pauly-girl1/pauly.home.s3<br><font | |
660 | color="#000000"><font face="Cumberland, monospace"><font size="2">t0d0s4 /net/cop4/Simics/install/import/pauly-girl1/pauly.rootdg.s4</font></font></font> | |
661 | ||
662 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">################################# end of TPCC scsidisk.init file #################################</font></font></font> | |
663 | ||
664 | <font color="#000000"><font face="Thorndale, serif"><font size="3">The controller number is assigned automatically. The format is: <logical name without controller number> <path to disk image> [,vtoc]</font></font></font> | |
665 | <font color="#000000"><font face="Thorndale, serif"><font size="3">If vtoc is specified then blaze uses the vtoc to read the disk image. If you specify vtoc make sure the slice is always 2 in the logical name.</font></font></font> | |
666 | <font color="#000000"><font face="Thorndale, serif"><font size="3">The above example does not work if any of the disks are under Solaris Volume Manager (SVM) control. The example below for SAP</font></font></font> | |
667 | <font color="#000000"><font face="Thorndale, serif"><font size="3">takes care of SVM issues.</font></font></font> | |
668 | ||
669 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">################################# start of SAP scsidisk.init file ################################</font></font></font> | |
670 | ||
671 | <font face="Cumberland, monospace"><font size="2">t1d0s0 ./root.img</font></font> | |
672 | <font face="Cumberland, monospace"><font size="2">t1d0s1 ./swap.img</font></font> | |
673 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">t2d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c2t5d0s0 vtoc serial-no="3BT0667C000010431BQJ" revision-id="5221" </font></font></font> | |
674 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">product-id="ST318404LSUN18G" vendor-id="SEAGATE"</font></font></font> | |
675 | ||
676 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">################################ end of SAP scsidisk.init file ####################################</font></font></font> | |
677 | ||
678 | <font color="#000000"><font face="Thorndale, serif"><font size="3">As you can see in the above SAP scsidisk.init file example the line for t2d0s2 has lots of extra parameters that are required for SVM to correctly</font></font></font> | |
679 | <font color="#000000"><font face="Thorndale, serif"><font size="3">access disks under SVM control. The information needed can be gathered on the referenence machine using prtconf -v | grep c2t5d0s0. In this</font></font></font> | |
680 | <font color="#000000"><font face="Thorndale, serif"><font size="3">case c2t5d0s0 is the logical name of the disk on the reference machine.</font></font></font></pre> | |
681 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
682 | <h2><a name="FC init file Setup|outline"></a><a | |
683 | name="FC init file Setup|outline"></a><a | |
684 | name="FC init file Setup|outline"></a><a | |
685 | name="FC init file Setup|outline"></a> | |
686 | FC init file Setup</h2> | |
687 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">Here | |
688 | is a sample TPCC and a sample fcdisk init file.</font></font></font></p> | |
689 | <pre>################################# start of TPCC fcdisk1.multi1.init file ##################################<br><br>/dev/dsk/t0d0s2 /net/cop4/Simics/install/import/10k10g/c11t0d0s2 0 vtoc 21000004cf27c89e 21000004cf27c89e<br>/dev/dsk/t1d0s2 /net/cop4/Simics/install/import/10k10g/c11t10d0s2 0 vtoc 21000004cf27efd7 21000004cf27efd7<br>/dev/dsk/t2d0s2 /net/cop4/Simics/install/import/10k10g/c11t16d0s2 0 vtoc 21000004cf27c8e1 21000004cf27c8e1<br>/dev/dsk/t3d0s2 /net/cop4/Simics/install/import/10k10g/c11t17d0s2 0 vtoc 21000004cf27f29a 21000004cf27f29a<br>/dev/dsk/t4d0s2 /net/cop4/Simics/install/import/10k10g/c11t18d0s2 0 vtoc 21000004cf27c26c 21000004cf27c26c<br>/dev/dsk/t5d0s2 /net/cop4/Simics/install/import/10k10g/c11t19d0s2 0 vtoc 21000004cf27e26c 21000004cf27e26c<br>/dev/dsk/t6d0s2 /net/cop4/Simics/install/import/10k10g/c11t1d0s2 0 vtoc 21000004cf27c16f 21000004cf27c16f<br>/dev/dsk/t7d0s2 /net/cop4/Simics/install/import/10k10g/c11t20d0s2 0 vtoc 21000004cf27c74a 21000004cf27c74a<br>/dev/dsk/t8d0s2 /net/cop4/Simics/install/import/10k10g/c11t21d0s2 0 vtoc 21000004cf27cc06 21000004cf27cc06<br>/dev/dsk/t9d0s2 /net/cop4/Simics/install/import/10k10g/c11t22d0s2 0 vtoc 21000004cf27c64c 21000004cf27c64c<br>/dev/dsk/t10d0s2 /net/cop4/Simics/install/import/10k10g/c11t23d0s2 0 vtoc 21000004cf27c6ee 21000004cf27c6ee<br>/dev/dsk/t11d0s2 /net/cop4/Simics/install/import/10k10g/c11t24d0s2 0 vtoc 21000004cf27c5af 21000004cf27c5af<br>/dev/dsk/t12d0s2 /net/cop4/Simics/install/import/10k10g/c11t25d0s2 0 vtoc 21000004cf27f9dd 21000004cf27f9dd<br>/dev/dsk/t13d0s2 /net/cop4/Simics/install/import/10k10g/c11t26d0s2 0 vtoc 21000004cf27cd8b 21000004cf27cd8b<br><font | |
690 | color="#000000"><font face="Cumberland, monospace"><font size="2">/dev/dsk/t14d0s2 /net/cop4/Simics/install/import/10k10g/c11t2d0s2 0 vtoc 21000004cf27e712 21000004cf27e712</font></font></font> | |
691 | ||
692 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">################################ end of TPCC fcdisk1.multi1.init file ######################################</font></font></font> | |
693 | ||
694 | <font color="#000000"><font face="Thorndale, serif"><font size="3">The controller is assigned automatically. The format is <logical name without controller number> <path to disk image> 0 vtoc <portname> <nodename>.</font></font></font> | |
695 | <font color="#000000"><font face="Thorndale, serif"><font size="3"><portname> and <nodename> are identical and are obtained by doing a ls -al on the logical name in /dev/dsk directory for each of the data disks. For example:</font></font></font> | |
696 | ||
697 | lrwxrwxrwx 1 root root 85 Jul 20 11:57 c12t1d0s2 -> ../../devices/ssm@0,<font | |
698 | size="3"><font face="Thorndale, serif"><font color="#000000">0/pci@19,700000/pci@3/</font></font></font> | |
699 | <font size="3"><font face="Thorndale, serif"><font color="#000000">SUNW,qlc@4/fp@0,</font></font></font>0/ssd@w50020f2300006207,<font | |
700 | size="3"><font face="Thorndale, serif"><font color="#000000">0:c</font></font></font> | |
701 | ||
702 | <font color="#000000"><font face="Thorndale, serif"><font size="3">portname = nodename = 50020f2300006207</font></font></font> | |
703 | ||
704 | <font color="#000000"><font face="Thorndale, serif"><font size="3">The above example works when the data disks are under Veritas control. We need extra data when data disks are under SVM control. Given below is an SAP</font></font></font> | |
705 | <font color="#000000"><font face="Thorndale, serif"><font size="3">fc init file as an example.</font></font></font> | |
706 | ||
707 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">############################################## start of SAP fcdisk.data1.init file ##########################################</font></font></font> | |
708 | ||
709 | t0d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t2d0s0 0 vtoc 210000203733adb7 200000203733adb7 revision-id="0929" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.33.ad.b7 node-wwn=20.00.00.20.37.33.ad.b7 | |
710 | ||
711 | t1d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t3d0s0 0 vtoc 21000020372b7c40 20000020372b7c40 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.2b.7c.40 node-wwn=20.00.00.20.37.2b.7c.40 | |
712 | ||
713 | t2d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t4d0s0 0 vtoc 21000020372b81f6 20000020372b81f6 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.2b.81.f6 node-wwn=21.00.00.20.37.2b.81.f6 | |
714 | ||
715 | t3d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t5d0s0 0 vtoc 21000020372b77ad 20000020372b77ad revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.2b.77.ad node-wwn=20.00.00.20.37.2b.77.ad | |
716 | ||
717 | t4d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t6d0s0 0 vtoc 21000020372b806e 20000020372b806e revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.2b.80.6e node-wwn=20.00.00.20.37.2b.80.6e | |
718 | ||
719 | t5d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t7d0s0 0 vtoc 21000020372b6ee1 20000020372b6ee1 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.2b.6e.e1 node-wwn=20.00.00.20.37.2b.6e.e1 | |
720 | ||
721 | t6d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t8d0s0 0 vtoc 21000020372b81cd 20000020372b81cd revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.2b.81.cd node-wwn=20.00.00.20.37.2b.81.cd | |
722 | ||
723 | t15d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c4t9d0s0 0 vtoc 21000020372b8284 20000020372b8284 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.2b.82.84 node-wwn=20.00.00.20.37.2b.82.84 | |
724 | ||
725 | t8d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c6t2d0s0 0 vtoc 2100002037331084 2000002037331084 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.33.10.84 node-wwn=20.00.00.20.37.33.10.84 | |
726 | ||
727 | t9d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c6t3d0s0 0 vtoc 210000203722e506 200000203722e506 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.22.e5.06 node-wwn=20.00.00.20.37.22.e5.06 | |
728 | ||
729 | t10d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c6t4d0s0 0 vtoc 2100002037330d60 2000002037330d60 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.33.0d.60 node-wwn=20.00.00.20.37.33.0d.60 | |
730 | ||
731 | t11d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c6t5d0s0 0 vtoc 2100002037330d78 2000002037330d78 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.33.0d.78 node-wwn=20.00.00.20.37.33.0d.78 | |
732 | ||
733 | t12d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c6t6d0s0 0 vtoc 2100002037330fef 2000002037330fef revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.33.0f.ef node-wwn=20.00.00.20.37.33.0f.ef | |
734 | ||
735 | t13d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c6t7d0s0 0 vtoc 21000020373318c6 20000020373318c6 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.33.18.c6 node-wwn=20.00.00.20.37.33.18.c6 | |
736 | ||
737 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">t14d0s2 /net/cop4/Simics/mnts/mnt24/sap_2005_new/c6t8d0s0 0 vtoc 2100002037330fb7 2000002037330fb7 revision-id="0728" product-id="ST39102FCSUN9.0G" vendor-id="SEAGATE" port-wwn=21.00.00.20.37.33.0f.b7 node-wwn=20.00.00.20.37.33.0f.b7</font></font></font> | |
738 | ||
739 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">############################################ end of SAP fcdisk.data1.init file #############################################</font></font></font> | |
740 | ||
741 | <font color="#000000"><font face="Thorndale, serif"><font size="3">As you see above for SVM to correctly access data disks under SVM control we need extra parameters. The information needed can be gathered on the referenence </font></font></font> | |
742 | <font color="#000000"><font face="Thorndale, serif"><font size="3">machine using prtconf -v | grep c6t8d0s0. In this case c6t8d0s0 is the logical name of the disk on the reference machine which is the last in the above list.</font></font></font></pre> | |
743 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
744 | <h2><a name="Disk Image file from a Reference System|outline"></a><a | |
745 | name="Disk Image file from a Reference System|outline"></a><a | |
746 | name="Disk Image file from a Reference System|outline"></a><a | |
747 | name="Disk Image file from a Reference System|outline"></a><a | |
748 | name="Disk Image file from a Reference System|outline"></a><a | |
749 | name="Disk Image file from a Reference System|outline"></a> | |
750 | Disk Image file from a Reference System</h2> | |
751 | <p>You have to have root access to that host system -</p> | |
752 | <ol> | |
753 | <li> | |
754 | <p>Login as root and run ”prtvtoc” on the disk where the root | |
755 | partition resides to get the disk configuration,</p> | |
756 | </li> | |
757 | </ol> | |
758 | <p style="margin-left: 0.49in;">You can know where the root partition | |
759 | is by looking at /etc/vfstab and see the device logical link that is | |
760 | mounted at /. For example if the root partition is c0t1d0s0 do a | |
761 | prtvtoc on slice 2 of the disk i.e. c0t1d0s2.</p> | |
762 | <ol> | |
763 | <p><font size="2">#prtvtoc /dev/rdsk/c0t1d0s2</font></p> | |
764 | </ol> | |
765 | <pre> * /dev/rdsk/c0t1d0s2 partition map<br> *<br> * Dimensions:<br> * 512 bytes/sector<br> * 248 sectors/track<br> * 19 tracks/cylinder<br> * 4712 sectors/cylinder<br> * 7508 cylinders<br> * 7506 accessible cylinders<br> *<br> * Flags:<br> * 1: unmountable<br> * 10: read-only<br> *<br> * First Sector Last<br> * Partition Tag Flags Sector Count Sector Mount Directory<br> 0 2 00 0 31273544 31273543 /<br> 1 3 01 31273544 4094728 35368271<br> 2 5 00 0 35368272 35368271</pre> | |
766 | <ol start="2"> | |
767 | <li> | |
768 | <p>From above vtoc table, the root partition starts from 0 (first | |
769 | sector) and total in 31273544 sector counts. Slice 2 of a disk is a | |
770 | special slice that points to the entire disk and so when you do dd your | |
771 | input is slice 2 of the disk that holds the root partition. Using the | |
772 | following command to create a root disk image:</p> | |
773 | </li> | |
774 | </ol> | |
775 | <ol start="3"> | |
776 | <p>dd if=/dev/dsk/c0t1d0s2 of=/blaze/aa/lren/env09-root iseek=0 | |
777 | count=31273544</p> | |
778 | <p>The general format is the following:</p> | |
779 | <p>dd if=”partition 2 of the disk with root resides, partition 2 | |
780 | points to the entire disk” of=”disk image file name” iseek=”first | |
781 | sector” count=”sector count”</p> | |
782 | <li> | |
783 | <p>Follow above steps 1 and 2 for the swap partition as well to | |
784 | generate swap disk image file.</p> | |
785 | </li> | |
786 | </ol> | |
787 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
788 | <h2><a name="Modifying root image to boot on SAM|outline"></a>Modifying | |
789 | root image to boot on SAM</h2> | |
790 | <p>Before making following changes to your root disk image, mount the | |
791 | disk file as a lofi device, by doing</p> | |
792 | <pre> lofiadm -a "your root image file"<br> mount /lofi/dev/x /tmp/root-image </pre> | |
793 | <p>where x is the lofi device number from "lofiadm -a" above | |
794 | command and /tmp/root-image is where your root image will be mounted. | |
795 | Be very careful when modifying root image because you are root on the | |
796 | machine on which you have the root image mounted. For example if you | |
797 | want to delete /etc/path_to_inst remember that it is | |
798 | /tmp/root-image/etc/path_to_inst that needs to be deleted. Before | |
799 | doing rm or mv or editing any file always do pwd to make sure you are | |
800 | in /tmp/root-image/...</p> | |
801 | <p>Please note, </p> | |
802 | <ul> | |
803 | <li> | |
804 | <p style="margin-bottom: 0in;">you need to "umount" and "lofiadm | |
805 | -d" after you are done with the changes </p> | |
806 | </li> | |
807 | <li> | |
808 | <p>/tmp/root-image will be referenced in this document as the the | |
809 | device your root image</p> | |
810 | </li> | |
811 | </ul> | |
812 | <ol> | |
813 | <li> | |
814 | <p>Install drivers.</p> | |
815 | </li> | |
816 | </ol> | |
817 | <p style="margin-left: 0.79in;">Copy following drivers from | |
818 | /import/blazetrace/blz-binaries/drivers/ to | |
819 | /tmp/root-image/kernel/drv/sparcv9,</p> | |
820 | <ol> | |
821 | <ol> | |
822 | <pre>pcisimd<br>pcisimc<br>bid</pre> | |
823 | </ol> | |
824 | </ol> | |
825 | <p style="margin-left: 0.79in;">Solaris 9</p> | |
826 | <ol> | |
827 | <ol start="0"> | |
828 | <pre style="margin-bottom: 0.2in;">Copy following drivers from /import/blazetrace/blz-binaries/drivers/ to /tmp/root-image/kernel/drv/sparcv9</pre> | |
829 | </ol> | |
830 | </ol> | |
831 | <pre style="margin-left: 0.98in;">ll<br>Copy following driver from /import/blazetrace/blz-binaries/drivers/ to /tmp/root-image/kernel/fs/sparcv9<br>llfs<br>Create /tmp/root-image/usr/lib/fs/llfs directory and copy /import/blazetrace/blz-binaries/drivers/mount into that directory.</pre> | |
832 | <p style="margin-left: 0.79in;">Solaris 10</p> | |
833 | <ol> | |
834 | <ol start="0"> | |
835 | <pre style="margin-bottom: 0.2in;">Copy following drivers from /import/blazetrace/blz-binaries/drivers/S10_63/ to /tmp/root-image/kernel/drv/sparcv9</pre> | |
836 | </ol> | |
837 | </ol> | |
838 | <pre style="margin-left: 0.99in;">ll<br>Copy following driver from /import/blazetrace/blz-binaries/drivers/S10_63/ to /tmp/root-image/kernel/fs/sparcv9<br>llfs<br>Create /tmp/root-image/usr/lib/fs/llfs directory and copy /import/blazetrace/blz-binaries/drivers/S10_63/mount into that directory.</pre> | |
839 | <ol start="2"> | |
840 | <li> | |
841 | <p>Create device nodes</p> | |
842 | </li> | |
843 | </ol> | |
844 | <pre style="margin-left: 0.48in; margin-bottom: 0.2in;">cd /tmp/root-image/devices</pre> | |
845 | <ol start="2"> | |
846 | <pre>mkdir pci@1f,600000<br>cd pci@1f,600000</pre> | |
847 | </ol> | |
848 | <pre style="margin-left: 0.48in; margin-bottom: 0.2in;"><font | |
849 | face="Thorndale, serif"><font size="3">You need to do the following for root and swap only. Let us assume here that root is at /dev/dsk/c0t0d0s0 and swap is at /dev/dsk/c0t0d0s1.</font></font></pre> | |
850 | <ol start="2"> | |
851 | <pre>mkdir scsi@0<br>mknod scsi@0:devctl c 50 0<br>mknod scsi@0:scsi c 50 1<br>cd scsi@0<br>mknod sd@0,0:a b 32 0<br>mknod sd@0,0:a,raw c 32 0<br>mknod sd@0,0:b b 32 1<br>mknod sd@0,0:b,raw c 32 1</pre> | |
852 | </ol> | |
853 | <pre style="margin-left: 0.48in;"><font face="Thorndale, serif"><font | |
854 | size="3">scsi@0 is for c0 and it stands for controller 0. sd@0,0 is for t0 and d0 i.e. target 0 and disk 0. The :a stands for s0 or slice 0 and :b stands for s1 or slice 1.</font></font> | |
855 | ||
856 | <font face="Thorndale, serif"><font size="3">The 50 stands for major device number for scsi controller and this is used by solaris to load the appropriate device driver in this case glm. Look at /etc/name_to_major file and grep for 50. The 32 stands for major device number for scsi disk. You will find sd entry in /etc/name_to_major as well. Look at man pages for further details.</font></font> | |
857 | <font face="Thorndale, serif"><font size="3">Minor number calculation:</font></font></pre> | |
858 | <ol start="2"> | |
859 | <pre style="margin-bottom: 0.2in;">minor number = (controller_id * 120) + (target_id * 8) + (partition_id)</pre> | |
860 | </ol> | |
861 | <pre style="margin-left: 0.47in;">Examples:<br>c1t0d0s0: minor number = 1*120 + 0*0 + 0 = 120<br>c1t1d0s3: minor number = 1*120 + 1*8 + 3 = 131</pre> | |
862 | <ol start="3"> | |
863 | <li> | |
864 | <p>Create dev links<br> | |
865 | Here is the example to link c0t0d0s0 and c0t0d0s1 to their device | |
866 | nodes. If there are existing names, please do mkdir OFF and mv them | |
867 | into that directory before performing the following links.</p> | |
868 | </li> | |
869 | </ol> | |
870 | <pre> cd /tmp/root-image/dev/dsk<br> ln -s ../../devices/pci@1f,600000/scsi@0/sd@0,0:a c0t0d0s0<br> ln -s ../../devices/pci@1f,600000/scsi@0/sd@0,0:b c0t0d0s1<br> cd /tmp/root-image/dev/rdsk<br> ln -s ../../devices/pci@1f,600000/scsi@0/sd@0,0:a,raw c0t0d0s0<br> ln -s ../../devices/pci@1f,600000/scsi@0/sd@0,0:b,raw c0t0d0s1<br><br><font | |
871 | face="Thorndale, serif"><font size="3">Note that although you only create device nodes in step 2 for root and image you have to create these /dev/dsk links or logical names for all disks that you need for simulation for example data disks from a database. We will talk about this later in this document.</font></font></pre> | |
872 | <ol start="4"> | |
873 | <li> | |
874 | <p>Create llfs file system mount point</p> | |
875 | </li> | |
876 | </ol> | |
877 | <pre> cd /tmp/root-image/<br> mkdir ll<br> cd ll<br> mkdir root<br><br><font | |
878 | face="Thorndale, serif"><font size="3">This is used to access the local file system which will get mounted under /ll/root on the simulated machine during boot.</font></font></pre> | |
879 | <ol start="5"> | |
880 | <li> | |
881 | <p>Administrative works in /etc directory</p> | |
882 | </li> | |
883 | </ol> | |
884 | <p style="margin-left: 0.49in;">Save or remove host system specific | |
885 | files.</p> | |
886 | <p style="margin-left: 1in;">The list of files here is system | |
887 | dependent. Your target system might not have more or less than what | |
888 | are mentioned here.</p> | |
889 | <pre style="margin-left: 0.99in;">cd /tmp/root-image/etc<br> mkdir OFF<br> mv defaultdomain dumpadm hostname* hosts mnttab path_to_inst OFF<br> cd /tmp/root-image/etc/rcS.d<br> mkdir OFF<br> mv S50devfsadm OFF<br> </pre> | |
890 | <p style="margin-left: 0.5in;">Modifications for /etc files</p> | |
891 | <pre> /tmp/root-image/etc/system - add following line <br> set pcisch:pci_buserr_interrupt=0<br> <br> /tmp/root-image/etc/vfstab - for example,<br> #device device mount FS fsck mount mount<br> #to mount to fsck point type pass at boot options<br> #<br> fd - /dev/fd fd - no -<br> /proc - /proc proc - no -<br> /dev/dsk/c0t0d0s1 - - swap - no -<br> /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -<br> %/ - /ll/root llfs - yes -<br> <br> And any additional disks you would like to map, for example<br> /dev/dsk/c0t2d0s0 - /export/apps ufs 1 no -<br> <br> /tmp/root-image/etc/name_to_major – find a available major number for Blaze specific devices and add<br> pcisimd 251<br> pcisimc 252<br> bid 253<br> ll 254<br><br>The device numbers assigned here need not be 251, 252 etc. Just go to the end of the file name_to_major<br>and start assigning numbers greater than the highest number you see in the file.<br><br> /tmp/root-image/etc/shadow – change the login password for root login<br> root::11431::::::<br> <br> /tmp/root-image/etc/minor_perm – add the following line<br> pcisimc:* 0660 root sys<br><br> /tmp/root-image/etc/iu.ap - add pcisimc here otherwise the text output wont line up on Blaze console.<br> pcisimc 0 0 ldterm ttcompat</pre> | |
892 | <ol start="6"> | |
893 | <li> | |
894 | <p>Blaze specific files</p> | |
895 | </li> | |
896 | </ol> | |
897 | <pre> /tmp/root-image/etc/hosts – you need a unique name and IP address within the subnet where you are going to run Blaze<br> for example,<br> #<br> # Blaze internet hosts file<br> #<br> 127.0.0.1 localhost loghost<br> 129.144.10.170 moan<br><br> /tmp/root-image/etc/path_to_inst – the path_to_inst for blasé only need one line as following,<br> #path_to_inst_bootstrap_1<br><br>If you have database disks under SVM in your simulation setup then you need to refer to the following<br>section to modify path_to_inst file:<br><br> /tmp/root-image/etc/mnttab – make it a empty file for Blaze.</pre> | |
898 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
899 | <h2><a name="Check-pointing using Dump/Restore|outline"></a><a | |
900 | name="Check-pointing using Dump/Restore|outline"></a> | |
901 | Check-pointing using Dump/Restore</h2> | |
902 | <p>Certain benchmarks takes weeks to run. It is always a good idea to | |
903 | generate checkpoints along the way. If multiple SAM simulations are | |
904 | connected using switchsim and they are running in time-sync mode do | |
905 | the following to generate checkpoint:</p> | |
906 | <p><i><b>At switchsim prompt: sync off</b></i></p> | |
907 | <p><i><b>At each SAM prompt: stop</b></i></p> | |
908 | <p><i><b>At each SAM prompt: dump <checkpointdir></b></i></p> | |
909 | <p>Where <checkpointdir> is the path to where the checkpoint | |
910 | will be stored. Make sure you have enough disk space in the partition | |
911 | of the <checkpointdir>. Once checkpoint is generated do the | |
912 | following to continue running:</p> | |
913 | <p><i><b>At each SAM prompt: sync on</b></i></p> | |
914 | <p><i><b>At switchsim prompt: sync on</b></i></p> | |
915 | <p>It is not advisable to run multiple SAMs without time-sync being | |
916 | “on” in switchsim.</p> | |
917 | <p>If your simulation involves only one SAM then to generate the | |
918 | checkpoint do the following:</p> | |
919 | <p><i><b>At SAM prompt: stop</b></i></p> | |
920 | <p><i><b>At SAM prompt: dump <checkpointdir></b></i></p> | |
921 | <p>To restore SAM from a checkpoint add “<b><i>-R | |
922 | <checkpointdir></i></b>” to the SAM run command. Make | |
923 | sure your config.rc is the same as what was used during checkpoint | |
924 | generation.</p> | |
925 | <p>Once your benchmark is warmed and ready to be traced you will | |
926 | generate a pretracing checkpoint. This is a very important checkpoint | |
927 | which will not only be used to generate traces but also to do | |
928 | execution-driven simulation by attaching SAM to a cycle-accurate CPU | |
929 | simulator which restores from the same checkpoint.</p> | |
930 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
931 | <h2><a name="Lazy Restore|outline"></a><a name="Lazy Restore|outline"></a> | |
932 | Lazy Restore</h2> | |
933 | <p>Frequently, you will want to restore from a large checkpoint with | |
934 | a huge amount of memory and built-up disk state, but only run for a | |
935 | short amount of time. Because of the short simulation duration, you | |
936 | will not read every memory page or every disk block. The lazy restore | |
937 | feature allows you to restore from a large checkpoint and run the | |
938 | simulation with a smaller memory and disk footprint. <br> | |
939 | <br> | |
940 | For | |
941 | example, consider a realistic database simulation with 64GB of | |
942 | simulated memory, and 10 TB of disk images with 500 GB of accumulated | |
943 | disk updates (overlays). <br> | |
944 | <br> | |
945 | When this checkpoint is restored, | |
946 | SAM does not make a copy of the entire accumulated overlay files. | |
947 | Instead, it memory-maps the overlay from the checkpoint, and only | |
948 | writes newer updates to the overlay files in the working directory. | |
949 | This feature is always enabled on SAM. <br> | |
950 | <br> | |
951 | A similar optimization | |
952 | is available for the simulated memory, where you can restore the | |
953 | simulation on a machine with less available memory than simulated. | |
954 | This is achieved by specifying the <b><i>-nonemreserve</i></b> option | |
955 | to the SAM command-line. <br> | |
956 | <br> | |
957 | Keep in mind that in both these | |
958 | cases, SAM does not reserve memory or disk space on the real machine | |
959 | for the corresponding simulated RAM/disk, and if the simulation runs | |
960 | long enough, a failure can happen as no more space is available to | |
961 | simulate more updates to memory or disk. </p> | |
962 | <p>==========================================================================================================================================</p> | |
963 | <h1><a name="11.Running SAM Huron|outline"></a>Running SAM Huron</h1> | |
964 | <p>To run SAM, launch the SAM binary from the SAM run directory. | |
965 | Ofcourse before running SAM Chplus we need a solaris root image, | |
966 | configuration files etc. The following sections explain in detail the | |
967 | steps that need to be done. Most of the steps in here are the same as | |
968 | for SAM Chplus. That is the reason you will links back to SAM Chplus | |
969 | documentation in most places. I have provided explanation for steps | |
970 | that are unique to SAM Huron in this section. For <a | |
971 | href="#Getting%20Started%7Coutline"><b>Getting | |
972 | Started</b></a>, <a href="#Creating%20a%20Root%20Image%7Coutline"><b>Creating | |
973 | a Root Image</b></a>, <a href="#Data%20Disk%20Images%7Coutline"><b>Data | |
974 | Disk Images</b></a>, <a href="#SCSI%20init%20file%20Setup%7Coutline"><b>SCSI | |
975 | init file Setup</b></a>, <a href="#FC%20init%20file%20Setup%7Coutline"><b>FC | |
976 | init file Setup</b></a>, <a | |
977 | href="#Disk%20Image%20file%20from%20a%20Reference%20System%7Coutline"><b>Disk | |
978 | Image file from a Reference System</b></a>, <a | |
979 | href="#Check-pointing%20using%20Dump/Restore%7Coutline"><b>Check-pointing | |
980 | using Dump/Restore</b></a><b> </b>and <a | |
981 | href="#Lazy%20Restore%7Coutline"><b>Lazy | |
982 | Restore</b></a> refer to SAM Chplus documentation.</p> | |
983 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
984 | <h2><a name="Getting and running SAM Huron|outline"></a>Getting and | |
985 | running SAM Huron</h2> | |
986 | <p>Go to the directory where you want the SAM to be installed and run | |
987 | the following command. Note that SAM chplus, SAM vonk etc. are all in | |
988 | one workspace.</p> | |
989 | <p><i><b># bringover -p /import/archperf/ws/sam -w ./<samdir> .</b></i></p> | |
990 | <p><i><b># cd <samdir></b></i></p> | |
991 | <p><i><b># make install-n2</b></i></p> | |
992 | <p style="font-style: normal;">The above command | |
993 | will build the Huron version of SAM. The above command will create a | |
994 | directory install-n2. You will find the following directories under | |
995 | install-chplus directory: bin, doc, etc, lib, man, pfe, rtl. The bin | |
996 | directory has the sam binary and the lib directory has all the | |
997 | loadable modules for devices. </p> | |
998 | <p style="font-style: normal;">Before you can run | |
999 | SAM Huron the run directory must contain the following files:</p> | |
1000 | <ol> | |
1001 | <li value="1"> | |
1002 | <p><font face="Thorndale, serif"><font size="3"><b>bin/sam:</b> sam | |
1003 | binary</font></font></p> | |
1004 | </li> | |
1005 | <li> | |
1006 | <p><font face="Thorndale, serif"><font size="3"><b>lib/*.so:</b> | |
1007 | the lib directory contains all the loadable modules (*.so)</font></font></p> | |
1008 | </li> | |
1009 | <li> | |
1010 | <p><font face="Thorndale, serif"><b>config.rc:</b> the rc file | |
1011 | where system configuration is specified. </font><a | |
1012 | href="#RC%20file%20Setup%7Coutline">RC file Setup</a></p> | |
1013 | </li> | |
1014 | <li> | |
1015 | <p><font face="Thorndale, serif"><b>scsidisk.init:</b> there could | |
1016 | be more than one of these files. </font><a | |
1017 | href="#SCSI%20init%20file%20Setup%7Coutline">SCSI init file Setup</a></p> | |
1018 | </li> | |
1019 | <li> | |
1020 | <p><font face="Thorndale, serif"><b>1c1t-hv.bin:</b> </font> </p> | |
1021 | </li> | |
1022 | <li> | |
1023 | <p><b>1c1t-md.bin:</b> </p> | |
1024 | </li> | |
1025 | <li> | |
1026 | <p><b>q.bin:</b> </p> | |
1027 | </li> | |
1028 | <li> | |
1029 | <p><b>reset.bin:</b> </p> | |
1030 | </li> | |
1031 | <li> | |
1032 | <p><b>openboot.bin:</b> </p> | |
1033 | </li> | |
1034 | <li> | |
1035 | <p><b>nvram.bin:</b> </p> | |
1036 | </li> | |
1037 | <li> | |
1038 | <p><b>root.img:</b> link to or a copy of the modified root image. <a | |
1039 | href="#Disk%20Image%20file%20from%20a%20Reference%20System%7Coutline">Disk | |
1040 | Image file from a Reference System</a></p> | |
1041 | </li> | |
1042 | <li> | |
1043 | <p><b>swap.img:</b> link to or a copy of swap image. <a | |
1044 | href="#Disk%20Image%20file%20from%20a%20Reference%20System%7Coutline">Disk | |
1045 | Image file from a Reference System</a></p> | |
1046 | </li> | |
1047 | </ol> | |
1048 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3"><u><b>Without | |
1049 | networking:</b></u></font></font></font></p> | |
1050 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3"><i><b># | |
1051 | bin/sam -c config.rc</b></i></font></font></font></p> | |
1052 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">The | |
1053 | -w is not needed here because it is the default. The -w automatically | |
1054 | brings up the console window of the simulated machine. Make sure you | |
1055 | have set your DISPLAY environment variable correctly.</font></font></font></p> | |
1056 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">At | |
1057 | blaze prompt: run</font></font></font></p> | |
1058 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">In | |
1059 | the simulated window do the following:</font></font></font></p> | |
1060 | <pre style="margin-left: 0.5in;">After getting the ok prompt select ll device by typing<br>dev /pci@0/pci@0/pci108e,0@2<br><br>Type the following to create needed properties (spaces are important below) <br>" ll" encode-string " name" property<br>2 encode-int " #size-cells" property <br>3 encode-int " #address-cells" property<br><br>At ok prompt type to start booting<br><font | |
1061 | color="#000000"><font face="Thorndale, serif"><font size="3"><font | |
1062 | size="2"><font face="Cumberland, monospace">boot /pci@0/pci@0/scsi@1/disk -vV</font></font> </font></font></font></pre> | |
1063 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3"><u><b>With | |
1064 | networking:</b></u></font></font></font></p> | |
1065 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">Make | |
1066 | sure you have created a file called hostname.ge0 in /etc/system | |
1067 | directory on root image and the file should have the machine name in | |
1068 | it.</font></font></font></p> | |
1069 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">It | |
1070 | could be ge0 or ce0 depending the NIC card gem or cassini being used. | |
1071 | It could be ge0 or ge1 depending on the name specified in rc file for | |
1072 | the device.</font></font></font></p> | |
1073 | <ol> | |
1074 | <li> | |
1075 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
1076 | size="3">Start switchsim on any machine using command: <b><i># | |
1077 | /import/blaze-trace/blz-binaries/switch-v1.6 -r ip</i></b>. Switch does | |
1078 | the following:</font></font></font></p> | |
1079 | <ol> | |
1080 | <ol type="a"> | |
1081 | <li> | |
1082 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
1083 | size="3">connects multiple blaze simulated environments together</font></font></font></p> | |
1084 | </li> | |
1085 | <li> | |
1086 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
1087 | size="3">models network delay</font></font></font></p> | |
1088 | </li> | |
1089 | <li> | |
1090 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
1091 | size="3">sync multiple blazes on time boundaries</font></font></font></p> | |
1092 | </li> | |
1093 | <li> | |
1094 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
1095 | size="3">behaves as a traditional switch in a real network</font></font></font></p> | |
1096 | </li> | |
1097 | </ol> | |
1098 | </ol> | |
1099 | </li> | |
1100 | <li> | |
1101 | <p><font color="#000000"><font face="Thorndale, serif"><font | |
1102 | size="3">Start blaze and connect to switch</font></font></font></p> | |
1103 | </li> | |
1104 | </ol> | |
1105 | <pre style="margin-left: 0.5in;"><i><b># bin/sam -c config.rc</b></i> | |
1106 | At blaze prompt: “simge connect <machine name>” where <machine name> is the machine on which switchsim is running | |
1107 | At blaze prompt: “sync connect <machine name>” where <machine name> is the machine on which switchsim is running | |
1108 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">At blaze prompt: “conf” ensure correct values for all parameters, if not, change using “conf <parameter> <value>”</font></font></font> | |
1109 | <font color="#000000"><font face="Cumberland, monospace"><font size="2">At blaze prompt: run</font></font></font></pre> | |
1110 | <p style="margin-left: 0.49in;"><font color="#000000"><font | |
1111 | face="Thorndale, serif"><font size="3">In | |
1112 | the simulated window do the following:</font></font></font></p> | |
1113 | <pre style="margin-left: 0.5in;">After getting the ok prompt select ll device by typing<br>dev /pci@0/pci@0/pci108e,0@2<br><br>Type the following to create needed properties (spaces are important below) <br>" ll" encode-string " name" property<br>2 encode-int " #size-cells" property <br>3 encode-int " #address-cells" property<br><br>At ok prompt type to start booting<br><font | |
1114 | color="#000000"><font face="Cumberland, monospace"><font size="2">boot /pci@0/pci@0/scsi@1/disk -vV</font></font></font></pre> | |
1115 | <ol start="3"> | |
1116 | <li> | |
1117 | <pre style="margin-bottom: 0.2in;"><font color="#000000"><font | |
1118 | face="Thorndale, serif"><font size="3">Bringup ge/ce NIC</font></font></font></pre> | |
1119 | </li> | |
1120 | </ol> | |
1121 | <pre style="margin-left: 0.5in;">After boot login as root in the simulated machine and then run the following commands in the simulated machine:<br>devfsadm -i ge<br>ifconfig ge0 plumb<br>ifconfig ge0 inet <ip address> netmask <net mask><br>ifconfig ge0 ether <mac address>, mac address is currently not being used in SAM<br>ifconfig ge0 up</pre> | |
1122 | <ol start="4"> | |
1123 | <li> | |
1124 | <p>Start other blazes and connect them using steps 2 and 3 above.</p> | |
1125 | </li> | |
1126 | <li> | |
1127 | <p>Check to see if the simulated machines are communicating using | |
1128 | traditional ping etc.</p> | |
1129 | </li> | |
1130 | </ol> | |
1131 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
1132 | <h2><a name="Huron RC file Setup|outline"></a>Huron RC file Setup</h2> | |
1133 | <p><font color="#000000"><font face="Thorndale, serif"><font size="3">Here | |
1134 | is a sample TPCE rc file. I included TPCE because it covers all the | |
1135 | facets of the setup.</font></font></font></p> | |
1136 | <pre>############################################### start of rc file ###########################################################<br><br>conf ramsize 65536M<br><br>conf mips 1000<br><br>conf cpu_per_thread 1<br><br>conf stickfreq 1417000000<br><br>load bin 1c2t-hv.bin 0x1f12080000<br>load bin 1c2t-md.bin 0x1f12000000<br><br>load bin ./nvram.bin 0x1f11000000<br><br>sysconf -p ./<br><br>sysconf cpu name=cpu0 cpu-type=SUNW,UltraSPARC-N2 clock-frequency=1417000000 id=0<br>sysconf cpu name=cpu1 cpu-type=SUNW,UltraSPARC-N2 clock-frequency=1417000000 id=1<br><br>sysconf ioram reset start_pa=0xfff0000000 size=0x10000 file=reset.bin sparse<br>sysconf ioram hv start_pa=0xfff0010000 size=0x70000 file=q.bin sparse<br>sysconf ioram obp start_pa=0xfff0080000 size=0x80000 file=openboot.bin sparse<br><br>sysconf serial_4v hypervisor-console base=0xfff0c2c000 size=0x1000<br><br>sysconf serial_4v guest-console base=0x9f10000000 size=0x51 pop log=1c2t.guest.log<br><br>sysconf tod_4v tod base=0xfff0c1fff8 size=0x8 tod=01010000002000 -d2<br><br>sysconf n2_ncu ncu<br>sysconf n2_piu piu bus=pciea ncu=ncu<br>sysconf pcie_bus pciea bridge=piu<br>sysconf bridge b0 bus=pciea dev=0 fun=0 secbus=pcia<br>sysconf bridge b2 bus=pciea dev=0 fun=2 secbus=pcib<br><br>sysconf pci_bus pcia bridge=b0<br>sysconf pci_bus pcib bridge=b2 <br><br>sysconf scsi scsi0 bus=pcia dev=1 fun=0 targets=scsidisk1.init <br>sysconf ll ll0 bus=pcia dev=2 fun=0<br>sysconf gem ge0 bus=pcia dev=3 fun=0 <br><br>sysconf fc fc1 bus=pcib dev=1 fun=0 targets=fcdisk2.1.init<br>sysconf fc fc2 bus=pcib dev=2 fun=0 targets=fcdisk2.2.init<br>sysconf fc fc3 bus=pcib dev=3 fun=0 targets=fcdisk2.3.init<br>sysconf fc fc4 bus=pcib dev=4 fun=0 targets=fcdisk2.4.init<br>sysconf fc fc5 bus=pcib dev=5 fun=0 targets=fcdisk2.5.init<br>sysconf fc fc6 bus=pcib dev=6 fun=0 targets=fcdisk2.6.init<br>sysconf fc fc7 bus=pcib dev=7 fun=0 targets=fcdisk2.7.init<br>sysconf fc fc8 bus=pcib dev=8 fun=0 targets=fcdisk2.8.init<br>sysconf fc fc9 bus=pcib dev=9 fun=0 targets=fcdisk2.9.init<br><br>################################################### end of rc file ###########################################################</pre> | |
1137 | <p><br> | |
1138 | <br> | |
1139 | </p> | |
1140 | <p><font face="Thorndale, serif">Here is an explanation of each of | |
1141 | the above lines:</font></p> | |
1142 | <pre><b>conf ramsize 65536M</b> – size of RAM or Memory on simulated machine<br><br><font | |
1143 | face="Cumberland, monospace"><b>conf mips 1000</b> – Useful in cpi </font>calculation. CPI is calculated by the formula: CPU clock frequency in Mhz / mips. For example <br>in the above rc file the CPI will be 1417 <font | |
1144 | face="Cumberland, monospace">/ 1000 = 1.417.</font> | |
1145 | ||
1146 | <b>conf cpu_per_thread 1</b> – blaze is a multi-threaded (MP-on_MP) application. In this case the rc file specifies 8 cpus and the <br>cpu_per_thread of 1 means blaze creates 8 threads for 8 cpus i.e. 1 thread to handle each cpu. If the cpu_per_thread value <br>were 2 blaze will create 4 threads to handle 8 cpus i.e. 2 cpus per thread. Apart from the cpu threads blaze creates 1 thread <br>per disk controller (scsi and/or fc). The UI in blaze runs on a separate thread.<br><br><b>conf stickfreq 1417000000</b> – run the binary /home/vsreeni/bin/stick on the reference machine and the output is the stick frequency.<br>Solaris uses STICK and STICK_COMPARE registers to keep track of time. stickfreq value defines the frequency at which the STICK<br>register update happens. Note that for Huron based systems stickfreq and cpufreq are the same.<br><br><b>load bin 1c2t-hv.bin 0x1f12080000 </b>- guest partition description, currently from Legion workspace<br><br><b>load bin 1c2t-md.bin 0x1f12000000</b> – machine description, currently from Legion workspace<br><br><b>load bin ./nvram.bin 0x1f11000000</b> - a zero filled file, obtained by modifying an existing nvram file.<br><br><b>sysconf -p ./</b> - indicates the directory in which the loadable modules are present in this case ./ i.e. current directory. In <br>latest blaze I think this is not changeable i.e. the search path for loadable modules is hard-coded to ./lib<br><br><b>sysconf cpu name=cpu0 cpu-type=SUNW,UltraSPARC-N2 clock-frequency=1417000000 id=0</b> – cpu specification<br><br><b>sysconf ioram reset start_pa=0xfff0000000 size=0x10000 file=reset.bin sparse</b> - reset code, HV workspace<br><br><b>sysconf ioram hv start_pa=0xfff0010000 size=0x70000 file=q.bin sparse</b> - hypervisor, HV workspace<br><br><b>sysconf ioram obp start_pa=0xfff0080000 size=0x80000 file=openboot.bin sparse</b> - OBP, OBP workspace<br><br><b>sysconf serial_4v hypervisor-console base=0xfff0c2c000 size=0x1000</b> - specification for serial console, the hypervisor console <br>of the simulated machine<br><br><b>sysconf serial_4v guest-console base=0x9f10000000 size=0x51 pop log=1c2t.guest.log</b> - specification for serial console, the <br>console of the simulated machine<br><br><b>sysconf tod_4v tod base=0xfff0c1fff8 size=0x8 tod=01010000002000 -d2</b> - specification for time of day device module. -d2<br>specifies the debug level.<br><br><b>sysconf n2_ncu ncu</b> – non-cacheable unit<br><br><b>sysconf n2_piu piu bus=pciea ncu=ncu</b> – pcie interface unit<br><br><b>sysconf pcie_bus pciea bridge=piu</b> - pci bus specification and the bridge it is attached<br><br><b>sysconf bridge b0 bus=pciea dev=0 fun=0 secbus=pcia</b> - specification for bridge chip and the names of pci buses attached to <br>the bridge.<br><br><b>sysconf pci_bus pcia bridge=b0</b> - pci bus specification and the bridge it is attached. <br><br><b>sysconf scsi scsi0 bus=pcia dev=1 fun=0 targets=scsidisk1.init</b> - specification for scsi controller, states that scsi controller<br>scsi0 is on bus pcia. All the disks attached to this controller are specified in scsidisk.init. <br><a | |
1147 | href="#5.HOWTO:%20setup%20run%20directory%20scsi%20init%20file%7Coutline">#5.HOWTO: setup run directory scsi init file|outline</a> | |
1148 | ||
1149 | <b>sysconf ll ll0 bus=pcia dev=2 fun=0</b> - specification for access to local file system, ll module<br><br><b>sysconf gem ge0 bus=pcia dev=3 fun=0</b> - specification for gem device module which is ethernet card<br><br><b>sysconf fc fc1 bus=pcib dev=1 fun=0 targets=fcdisk2.1.init</b> - similar to scsi controller this is a <br>specification fc controller PCCfc01 which is attached to bus pciA30 of schizo30 bridge chip. The fc disks attached to this <br>controller are in fcdisk1.multi1.init. <a | |
1150 | href="#6.HOWTO:%20setup%20run%20directory%20fc%20init%20file%7Coutline">#6.HOWTO: setup run directory fc init file|outline</a> | |
1151 | ||
1152 | ||
1153 | -----------------------------------------------------------------------------------------------------------------------------------------------------------</pre> | |
1154 | <h2><a name="Modifying root image to boot on SAM Huron|outline"></a>Modifying | |
1155 | root image to boot on SAM Huron</h2> | |
1156 | <p>Before making following changes to your root disk image, mount the | |
1157 | disk file as a lofi device, by doing</p> | |
1158 | <pre> lofiadm -a "your root image file"<br> mount /lofi/dev/x /tmp/root-image </pre> | |
1159 | <p>where x is the lofi device number from "lofiadm -a" above | |
1160 | command and /tmp/root-image is where your root image will be mounted. | |
1161 | Be very careful when modifying root image because you are root on the | |
1162 | machine on which you have the root image mounted. For example if you | |
1163 | want to delete /etc/path_to_inst remember that it is | |
1164 | /tmp/root-image/etc/path_to_inst that needs to be deleted. Before | |
1165 | doing rm or mv or editing any file always do pwd to make sure you are | |
1166 | in /tmp/root-image/...</p> | |
1167 | <p>Please note, </p> | |
1168 | <ul> | |
1169 | <li> | |
1170 | <p style="margin-bottom: 0in;">you need to "umount" and "lofiadm | |
1171 | -d" after you are done with the changes </p> | |
1172 | </li> | |
1173 | <li> | |
1174 | <p>/tmp/root-image will be referenced in this document as the the | |
1175 | device your root image</p> | |
1176 | </li> | |
1177 | </ul> | |
1178 | <ol> | |
1179 | <li> | |
1180 | <p>Install drivers.</p> | |
1181 | </li> | |
1182 | </ol> | |
1183 | <p style="margin-left: 0.79in;">Copy following drivers from | |
1184 | /import/blazetrace/blz-binaries/drivers/ to | |
1185 | /tmp/root-image/kernel/drv/sparcv9,</p> | |
1186 | <ol> | |
1187 | <ol> | |
1188 | <pre>pcisimd<br>pcisimc<br>bid</pre> | |
1189 | </ol> | |
1190 | </ol> | |
1191 | <p style="margin-left: 0.79in;">Solaris 11</p> | |
1192 | <ol> | |
1193 | <ol start="0"> | |
1194 | <pre style="margin-bottom: 0.2in;">Copy following drivers from /import/blazetrace/blz-binaries/drivers/S11/ to /tmp/root-image/kernel/drv/sparcv9</pre> | |
1195 | </ol> | |
1196 | </ol> | |
1197 | <pre style="margin-left: 0.99in;">ll<br>Copy following driver from /import/blazetrace/blz-binaries/drivers/S11/ to /tmp/root-image/kernel/fs/sparcv9<br>llfs<br>Create /tmp/root-image/usr/lib/fs/llfs directory and copy /import/blazetrace/blz-binaries/drivers/S11/mount into that directory.</pre> | |
1198 | <ol start="2"> | |
1199 | <li> | |
1200 | <p>Create llfs file system mount point</p> | |
1201 | </li> | |
1202 | </ol> | |
1203 | <pre> cd /tmp/root-image/<br> mkdir ll<br> cd ll<br> mkdir root<br><br><font | |
1204 | face="Thorndale, serif"><font size="3">This is used to access the local file system which will get mounted under /ll/root on the simulated machine during boot.</font></font></pre> | |
1205 | <ol start="3"> | |
1206 | <li> | |
1207 | <p>Administrative works in /etc directory</p> | |
1208 | </li> | |
1209 | </ol> | |
1210 | <p style="margin-left: 0.49in;">Save or remove host system specific | |
1211 | files.</p> | |
1212 | <p style="margin-left: 1in;">The list of files here is system | |
1213 | dependent. Your target system might not have more or less than what | |
1214 | are mentioned here.</p> | |
1215 | <pre style="margin-left: 0.99in;">cd /tmp/root-image/etc<br> mkdir OFF<br> mv defaultdomain dumpadm hostname* hosts mnttab path_to_inst OFF<br> cd /tmp/root-image/etc/rcS.d<br> mkdir OFF<br> mv S50devfsadm OFF<br> </pre> | |
1216 | <p style="margin-left: 0.5in;">Modifications for /etc files</p> | |
1217 | <pre> /tmp/root-image/etc/system - add following line <br> set pcisch:pci_buserr_interrupt=0<br> <br> /tmp/root-image/etc/vfstab - for example,<br> #device device mount FS fsck mount mount<br> #to mount to fsck point type pass at boot options<br> #<br> fd - /dev/fd fd - no -<br> /proc - /proc proc - no -<br> /dev/dsk/c0t0d0s1 - - swap - no -<br> /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -<br> %/ - /ll/root llfs - yes -<br> <br> And any additional disks you would like to map, for example<br> /dev/dsk/c0t2d0s0 - /export/apps ufs 1 no -<br> <br> /tmp/root-image/etc/name_to_major – find a available major number for Blaze specific devices and add<br> pcisimd 251<br> pcisimc 252<br> bid 253<br> ll 254<br><br>The device numbers assigned here need not be 251, 252 etc. Just go to the end of the file name_to_major<br>and start assigning numbers greater than the highest number you see in the file.<br><br> /tmp/root-image/etc/shadow – change the login password for root login<br> root::11431::::::<br> <br> /tmp/root-image/etc/minor_perm – add the following line<br> pcisimc:* 0660 root sys<br><br> /tmp/root-image/etc/iu.ap - add pcisimc here otherwise the text output wont line up on Blaze console.<br> pcisimc 0 0 ldterm ttcompat</pre> | |
1218 | <ol start="4"> | |
1219 | <li> | |
1220 | <p>Blaze specific files</p> | |
1221 | </li> | |
1222 | </ol> | |
1223 | <pre> /tmp/root-image/etc/hosts – you need a unique name and IP address within the subnet where you are going to run Blaze<br> for example,<br> #<br> # Blaze internet hosts file<br> #<br> 127.0.0.1 localhost loghost<br> 129.144.10.170 moan<br><br> /tmp/root-image/etc/path_to_inst – the path_to_inst for blasé only need one line as following,<br> #path_to_inst_bootstrap_1<br><br>If you have database disks under SVM in your simulation setup then you need to refer to the following<br>section to modify path_to_inst file:<br><br> /tmp/root-image/etc/mnttab – make it a empty file for Blaze.</pre> | |
1224 | <p><br> | |
1225 | <br> | |
1226 | </p> | |
1227 | <p>==========================================================================================================================================</p> | |
1228 | <h1><a name="12.Tracing|outline"></a>Tracing</h1> | |
1229 | <p>This is one of the primary functions of SAM i.e. to be able to | |
1230 | generate traces which contain both user and kernel instructions. | |
1231 | Traces are used by cycle accurate simulators to make performance | |
1232 | projections. This sections explains how to gather a trace, generate | |
1233 | and gather statistics, running various scripts as part of trace | |
1234 | validation and reporting of trace.</p> | |
1235 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
1236 | <h2><a name="Trace Collection and Validation|outline"></a>Trace | |
1237 | Collection and Validation</h2> | |
1238 | <p>The RST tracer module rstracer.so is a shared object located in | |
1239 | the SAM directory. You must dynamically link/load it with SAM via. | |
1240 | RSTracer registers call back functions such as, instructions, Traps, | |
1241 | TLB update and DMAs. RST writes the record to an output trace file.</p> | |
1242 | <p>After you restore from pretracing checkpoint do the following at | |
1243 | SAM prompt:</p> | |
1244 | <p><i><b>sam: stop</b></i></p> | |
1245 | <p><i><b>sam: mod load analyzer ./rstracer.so</b></i></p> | |
1246 | <p><i><b>sam: run</b></i></p> | |
1247 | <p>Always make sure you stop before loading the RSTracer. Ofcourse | |
1248 | SAM is in stop state after you restore from pretracing checkpoint but | |
1249 | make it a habit to double-check everything.</p> | |
1250 | <p>Once we restore from pretracing checkpoint we are ready to start | |
1251 | tracing. It is not sufficient to just load the rstracer. We then have | |
1252 | to specify certain parameters to the rstracer. You can type “<b><i>help | |
1253 | rstrace</i></b>” at SAM prompt (once rstracer is loaded) to get | |
1254 | help on parameters. </p> | |
1255 | <p>You can collect either a single trace or a series of K sample | |
1256 | traces each NN instructions long, with each trace separated by PP | |
1257 | instructions. </p> | |
1258 | <p>The trace will be a compressed RST trace. We apply RST compression | |
1259 | and then gzip compression, which typically gives a 30X compression. | |
1260 | If you insist on consuming incredible amounts of disk space, you can | |
1261 | collect an uncompressed trace. Additionally, it is faster to collect | |
1262 | a compressed trace than an uncompressed trace. In SAM v5 by default a | |
1263 | value trace is collected.</p> | |
1264 | <p>By default, a trace name “bigeasy” will be the name of | |
1265 | your file. For example, bigeasy-2002-04-15_16- | |
1266 | 16-12-10707-1:0.1.rz2.gz. Clearly, the date and time and the PID of | |
1267 | sam is put into the filename. Additionally, there is a tracing | |
1268 | request number, the current sample and the total number of samples to | |
1269 | the trace name in a format. Each time you specify a (set of samples) | |
1270 | trace, the trace request number is bumped.</p> | |
1271 | <p><i><b>rstrace -o <file> -n <insts-per-cpu> -d | |
1272 | <initial-delay-per-cpu> -x <ntraces> -p | |
1273 | <period-per-cpu></b></i></p> | |
1274 | <p>All durations are in terms of per-cpu instruction counts.</p> | |
1275 | <p>For further details on tracing and validation of traces refer to: | |
1276 | <a | |
1277 | href="http://traces.sfbay/twiki/pub/Traces/Documentation/Tracing_doc041406.pdf">http://traces.sfbay/twiki/pub/Traces/Documentation/Tracing_doc041406.pdf</a></p> | |
1278 | <p>The pdf document also contains a sample validation report. You can | |
1279 | access a number of validation reports from <a | |
1280 | href="http://traces.sfbay/">http://traces.sfbay</a>.<br> | |
1281 | <br> | |
1282 | </p> | |
1283 | <p>==========================================================================================================================================</p> | |
1284 | <h1><a name="14.HOWTOs|outline"></a>HOWTOs</h1> | |
1285 | <p>This section has a few howto items and these are not needed for | |
1286 | the normal running and tracing in SAM simulation environment. These | |
1287 | are more like conveniences.</p> | |
1288 | <p>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</p> | |
1289 | <h2><a name="Open extra Console Windows|outline"></a>Open extra | |
1290 | Console Windows</h2> | |
1291 | <p>In the default console window that opens up using the -w option do | |
1292 | the following:</p> | |
1293 | <p><i><b>#export TERM=vt100</b></i></p> | |
1294 | <p><i><b>#stty rows 24</b></i></p> | |
1295 | <p><i><b>#stty cols 80</b></i></p> | |
1296 | <p><i><b>#/ll/root/import/archperf/local/bin/screen</b></i></p> | |
1297 | <p>Once it starts, you can use "<b><i>ctrl-a c</i></b>" to | |
1298 | create new screens, and "<b><i>ctrl-a n</i></b>" to move to | |
1299 | the next one.</p> | |
1300 | <p>==========================================================================================================================================</p> | |
1301 | <p><br> | |
1302 | <br> | |
1303 | </p> | |
1304 | <p style="margin-bottom: 0in;"><br> | |
1305 | </p> | |
1306 | <p><br> | |
1307 | <br> | |
1308 | </p> | |
1309 | </body> | |
1310 | </html> |