Greeting<br><br>Can any one gibe me a feedback why I am getting a "segmentation fault" error when modifying a 3disk.parv faile to include an ssd device ?????????<br><br>Here my modified PARV file <br><br># 3disks.parv <br>
# John Bucy/20021210<br># 3 different disks on 1 controller<br># ---------------------------------------------------------<br>disksim_global Global { <br> Init Seed = 42,<br> Real Seed = 42,<br> # Statistic warm-up period = 0.0 seconds,<br>
 Stat definition file = statdefs <br>}<br># ---------------------------------------------------------<br>disksim_stats Stats {<br><br>iodriver stats = disksim_iodriver_stats {<br> Print driver size stats = 1,<br> Print driver locality stats = 0,<br>
 Print driver blocking stats = 0,<br> Print driver interference stats = 0,<br> Print driver queue stats = 1,<br> Print driver crit stats = 0,<br> Print driver idle stats = 1,<br> Print driver intarr stats = 1,<br> Print driver streak stats = 1,<br>
 Print driver stamp stats = 1,<br> Print driver per-device stats = 1 },<br><br>bus stats = disksim_bus_stats {<br> Print bus idle stats = 1,<br> Print bus arbwait stats = 1 },<br><br>ctlr stats = disksim_ctlr_stats {<br> Print controller cache stats = 1,<br>
 Print controller size stats = 1,<br> Print controller locality stats = 1,<br> Print controller blocking stats = 1,<br> Print controller interference stats = 1,<br> Print controller queue stats = 1,<br> Print controller crit stats = 1,<br>
 Print controller idle stats = 1,<br> Print controller intarr stats = 1,<br> Print controller streak stats = 1,<br> Print controller stamp stats = 1,<br> Print controller per-device stats = 1 },<br><br>device stats = disksim_device_stats {<br>
 Print device queue stats = 0,<br> Print device crit stats = 0,<br> Print device idle stats = 0,<br> Print device intarr stats = 0,<br> Print device size stats = 0,<br> Print device seek stats = 1,<br> Print device latency stats = 1,<br>
 Print device xfer stats = 1,<br> Print device acctime stats = 1,<br> Print device interfere stats = 0,<br> Print device buffer stats = 1 },<br><br>process flow stats = disksim_pf_stats {<br> Print per-process stats =  1,<br>
 Print per-CPU stats =  1, <br> Print all interrupt stats =  1,<br> Print sleep stats =  1<br> }<br>} # end of stats block<br># ---------------------------------------------------------<br>#disksim_iosim IS {<br>#     I/O Trace Time Scale = 1.0<br>
#}  # end of iosim spec<br># ---------------------------------------------------------<br>disksim_iodriver DRIVER0 {<br>type = 1,<br>Constant access time = 0.0,<br>Scheduler = disksim_ioqueue {<br> Scheduling policy = 3,<br>
 Cylinder mapping strategy = 1,<br> Write initiation delay = 0.0,<br> Read initiation delay = 0.0,<br> Sequential stream scheme = 0,<br> Maximum concat size = 128,<br> Overlapping request scheme = 0,<br> Sequential stream diff maximum = 0,<br>
 Scheduling timeout scheme = 0,<br> Timeout time/weight = 6,<br> Timeout scheduling = 4,<br> Scheduling priority scheme = 0,<br> Priority scheduling = 4<br>}, # end of Scheduler<br>Use queueing in subsystem = 1<br>} # end of DRV0 spec<br>
# ---------------------------------------------------------<br>disksim_bus BUS0 {<br>type = 1,<br>Arbitration type = 1,<br>Arbitration time = 0.0,<br>Read block transfer time = 0.0,<br>Write block transfer time = 0.0,<br>
Print stats =  0<br>} # end of BUS0 spec<br># ---------------------------------------------------------<br>disksim_bus BUS1 {<br>type = 1,<br>Arbitration type = 1,<br>Arbitration time = 0.0,<br>Read block transfer time = 0.0512,<br>
Write block transfer time = 0.0512,<br>Print stats =  1<br>} # end of BUS1 spec<br># ---------------------------------------------------------<br>disksim_bus BUS2 {<br>type = 1,<br>Arbitration type = 1,<br>Arbitration time = 0.0,<br>
Read block transfer time = 0.0512,<br>Write block transfer time = 0.0512,<br>Print stats =  1<br>} # end of BUS2 spec<br># ---------------------------------------------------------<br>disksim_bus BUS3 {<br>type = 1,<br>Arbitration type = 1,<br>
Arbitration time = 0.0,<br>Read block transfer time = 0.0512,<br>Write block transfer time = 0.0512,<br>Print stats =  1<br>} # end of BUS3 spec<br># ---------------------------------------------------------<br>disksim_bus BUSHBA {<br>
type = 2,<br>Arbitration type = 1,<br>Arbitration time = 0.001,<br><br># PCI-E, with 8 lanes with 8b/10b encoding gives 2.0 Gbps per <br># lane and with 8 lanes we get about 2.0 GBps. So, bulk sector <br># transfer time is about 0.238 us. SATA/300 can transfer data <br>
# at 300 MBps, which amounts to about 1.6276 us per byte.<br><br>Read block transfer time = 0.0002384,<br>Write block transfer time = 0.0002384,<br>#Read block transfer time = 0.0016276,<br>#Write block transfer time = 0.0016276,<br>
<br>Print stats =  1<br>} # end of BUSHBA spec<br># ---------------------------------------------------------<br>disksim_ctlr CTLR0 {<br>type = 1,<br>Scale for delays = 0.0,<br>Bulk sector transfer time = 0.0,<br>Maximum queue length = 0,<br>
Print stats =  1<br>} # end of CTLR0 spec<br># ---------------------------------------------------------<br># don't change the order of the following parameters.<br># we use Flash chip elements and Elements per gang to<br>
# find number of gang -- we need this info before initializing<br># the queue (disksim_ioqueue)<br><br>ssdmodel_ssd SSD {<br>     # vp - this is a percentage of total pages in the ssd<br>     Reserve pages percentage = 15,<br>
<br>     # vp - min percentage of free blocks needed. if the free <br>     # blocks drop below this, cleaning kicks in<br>     Minimum free blocks percentage = 5,<br><br>     # vp - a simple read-modify-erase-write policy = 1 (no longer supported)<br>
     # vp - osr write policy = 2<br>     Write policy = 2,<br><br>     # vp - random = 1 (not supp), greedy = 2, wear-aware = 3<br>     Cleaning policy = 2,<br><br>     # vp - number of planes in each flash package (element)<br>
     Planes per package = 8,<br><br>     # vp - number of flash blocks in each plane<br>     Blocks per plane = 2048,<br><br>     # vp - how the blocks within an element are mapped on a plane<br>     # simple concatenation = 1, plane-pair stripping = 2 (not tested),<br>
     # full stripping = 3<br>     Plane block mapping = 3,<br><br>     # vp - copy-back enabled (1) or not (0)<br>     Copy back = 1,<br><br>     # how many parallel units are there?<br>     # entire elem = 1, two dies = 2, four plane-pairs = 4<br>
     Number of parallel units = 1,<br><br>     # vp - we use diff allocation logic: chip/plane<br>     # each gang = 0, each elem = 1, each plane = 2<br>     Allocation pool logic = 1,<br><br>     # elements are grouped into a gang<br>
     Elements per gang = 1,<br><br>     # shared bus (1) or shared control (2) gang<br>     Gang share = 1,<br><br>     # when do we want to do the cleaning?<br>     Cleaning in background = 0,<br><br>     Command overhead =  0.00,<br>
     Bus transaction latency =  0.0,<br><br>#    Assuming PCI-E, with 8 lanes with 8b/10b encoding.<br>#    This gives 2.0 Gbps per lane and with 8 lanes we get about<br>#    2.0 GBps. So, bulk sector transfer time is about 0.238 us.<br>
#    Use the "Read block transfer time" and "Write block transfer time"<br>#    from disksim_bus above.<br>     Bulk sector transfer time =  0,<br><br>     Flash chip elements = 8,<br><br>     Page size = 8,<br>
<br>     Pages per block = 64,<br><br>     # vp - changing the no of blocks from 16184 to 16384<br>     Blocks per element = 16384,<br><br>     Element stride pages = 1,<br><br>     Never disconnect =  1,<br>     Print stats =  1,<br>
     Max queue length =  20,<br>     Scheduler = disksim_ioqueue {<br>       Scheduling policy =  1,<br>       Cylinder mapping strategy =  0,<br>       Write initiation delay =  0,<br>       Read initiation delay =  0.0,<br>
       Sequential stream scheme =  0,<br>       Maximum concat size =  0,<br>       Overlapping request scheme =  0,<br>       Sequential stream diff maximum =  0,<br>       Scheduling timeout scheme =  0,<br>       Timeout time/weight =  0,<br>
       Timeout scheduling =  0,<br>       Scheduling priority scheme =  0,<br>       Priority scheduling =  1<br>     },<br>     Timing model = 1,<br><br>     # vp changing the Chip xfer latency from per sector to per byte<br>
     Chip xfer latency = 0.000025,<br><br>     Page read latency = 0.025,<br>     Page write latency = 0.200,<br>     Block erase latency = 1.5<br>}  # end of SSD spec<br><br># ---------------------------------------------------------<br>
# HP_C3323A<br>source atlas10k.diskspecs<br>source ibm18es.diskspecs<br>source cheetah9LP.diskspecs<br># ---------------------------------------------------------<br># component instantiation<br>instantiate [ statfoo ] as Stats<br>
instantiate [ statfoo ]         as  Stats<br><br>instantiate [ quantum ] as  QUANTUM_TORNADO_validate<br>instantiate [ ibm ]     as  IBM_DNES-309170W_validate<br>instantiate [ seagate ] as  SEAGATE_ST39102LW_validate<br>instantiate [ ssd0x0 ]  as  SSD<br>
<br>instantiate [ bus0 ]    as  BUS0<br>instantiate [ bus1 ]    as  BUS1<br>instantiate [ bus2 ]    as  BUS2<br>instantiate [ bus3 ]    as  BUS3<br>instantiate [ busHBA0 ] as  BUSHBA<br><br>instantiate [ driver0 ] as  DRIVER0<br>
instantiate [ ctlr0 ]   as  CTLR0<br># ---------------------------------------------------------<br># system topology<br>topology disksim_iodriver driver0 [<br>     disksim_bus bus0 [ <br>                       disksim_ctlr ctlr0 [ <br>
                                           disksim_bus bus1 [ <br>                                                             disksim_disk quantum []<br>                                                            ],<br>                                           disksim_bus bus2 [<br>
                                                             disksim_disk ibm []<br>                                                            ],<br>                                           disksim_bus bus3 [<br>                                                             disksim_disk seagate []<br>
                                                            ],  <br>                                        disksim_bus busHBA0 [<br>                                                             ssdmodel_ssd ssd0x0 []<br>                                                            ]                                                           <br>
                                          ]<br>                      ]<br>    ]<br># no syncsets<br># ---------------------------------------------------------<br>disksim_logorg quantumorg {<br>   Addressing mode = Parts,<br>
   Distribution scheme = Asis,<br>   Redundancy scheme = Noredun,<br>   devices = [ quantum ],<br>   Stripe unit  =  17938986,<br>   Synch writes for safety =  0,<br>   Number of copies =  2,<br>   Copy choice on read =  6,<br>
   RMW vs. reconstruct =  0.5,<br>   Parity stripe unit =  64,<br>   Parity rotation type =  1,<br>   Time stamp interval =  0.000000,<br>   Time stamp start time =  60000.000000,<br>   Time stamp stop time =  10000000000.000000,<br>
   Time stamp file name =  stamps<br>} # end of logorg org0 spec<br># ---------------------------------------------------------<br>disksim_logorg ibmorg {<br>   Addressing mode = Parts,<br>   Distribution scheme = Asis,<br>
   Redundancy scheme = Noredun,<br>   devices = [ ibm ],<br>   Stripe unit  =   17916240,<br>   Synch writes for safety =  0,<br>   Number of copies =  2,<br>   Copy choice on read =  6,<br>   RMW vs. reconstruct =  0.5,<br>
   Parity stripe unit =  64,<br>   Parity rotation type =  1,<br>   Time stamp interval =  0.000000,<br>   Time stamp start time =  60000.000000,<br>   Time stamp stop time =  10000000000.000000,<br>   Time stamp file name =  stamps<br>
} # end of logorg org0 spec<br># ---------------------------------------------------------<br>disksim_logorg seagateorg {<br>   Addressing mode = Parts,<br>   Distribution scheme = Asis,<br>   Redundancy scheme = Noredun,<br>
   devices = [ seagate ],<br>   Stripe unit  =  17783240,<br>   Synch writes for safety =  0,<br>   Number of copies =  2,<br>   Copy choice on read =  6,<br>   RMW vs. reconstruct =  0.5,<br>   Parity stripe unit =  64,<br>
   Parity rotation type =  1,<br>   Time stamp interval =  0.000000,<br>   Time stamp start time =  60000.000000,<br>   Time stamp stop time =  10000000000.000000,<br>   Time stamp file name =  stamps<br>} # end of logorg org0 spec<br>
# ---------------------------------------------------------<br>disksim_logorg org0 {<br>   Addressing mode = Array,<br>   Distribution scheme = Striped,<br>   Redundancy scheme = Noredun,<br><br>   # vp - added more ssd elements<br>
   devices = [ ssd0x0 ],<br><br>   Stripe unit  =  128,<br>   Synch writes for safety =  0,<br>   Number of copies =  2,<br>   Copy choice on read =  6,<br>   RMW vs. reconstruct =  0.5,<br>   Parity stripe unit =  128,<br>
   Parity rotation type =  1,<br>   Time stamp interval =  0.000000,<br>   Time stamp start time =  60000.000000,<br>   Time stamp stop time =  10000000000.000000,<br>   Time stamp file name =  stamps<br>} # end of logorg org0 spec<br>
#--------------------------------------------------------------<br clear="all"><br>*********************************************************************************<br>The output file has no error , however, a "segmentation error is generated when executing the simulator !!!<br>
<br>Here is my output file .....<br><br><br>*** Output file name: abdullah.out<br>*** Input trace format: validate<br>*** I/O trace used: cheetah9LP.trace<br>*** Synthgen to be used?: 0<br><br>disksim_global Global {<br>Init Seed = 42,<br>
Real Seed = 42,<br>Stat definition file = statdefs<br>} # end of Global spec<br><br>disksim_stats Stats {<br>iodriver stats = disksim_iodriver_stats {<br>Print driver size stats = 1,<br>Print driver locality stats = 0,<br>
Print driver blocking stats = 0,<br>Print driver interference stats = 0,<br>Print driver queue stats = 1,<br>Print driver crit stats = 0,<br>Print driver idle stats = 1,<br>Print driver intarr stats = 1,<br>Print driver streak stats = 1,<br>
Print driver stamp stats = 1,<br>Print driver per-device stats = 1<br>   },<br>bus stats = disksim_bus_stats {<br>Print bus idle stats = 1,<br>Print bus arbwait stats = 1<br>   },<br>ctlr stats = disksim_ctlr_stats {<br>Print controller cache stats = 1,<br>
Print controller size stats = 1,<br>Print controller locality stats = 1,<br>Print controller blocking stats = 1,<br>Print controller interference stats = 1,<br>Print controller queue stats = 1,<br>Print controller crit stats = 1,<br>
Print controller idle stats = 1,<br>Print controller intarr stats = 1,<br>Print controller streak stats = 1,<br>Print controller stamp stats = 1,<br>Print controller per-device stats = 1<br>   },<br>device stats = disksim_device_stats {<br>
Print device queue stats = 0,<br>Print device crit stats = 0,<br>Print device idle stats = 0,<br>Print device intarr stats = 0,<br>Print device size stats = 0,<br>Print device seek stats = 1,<br>Print device latency stats = 1,<br>
Print device xfer stats = 1,<br>Print device acctime stats = 1,<br>Print device interfere stats = 0,<br>Print device buffer stats = 1<br>   },<br>process flow stats = disksim_pf_stats {<br>Print per-process stats = 1,<br>
Print per-CPU stats = 1,<br>Print all interrupt stats = 1,<br>Print sleep stats = 1<br>   }<br>} # end of Stats spec<br><br>disksim_iodriver DRIVER0 {<br>type = 1,<br>Constant access time = 0.0,<br>Scheduler = disksim_ioqueue {<br>
Scheduling policy = 3,<br>Cylinder mapping strategy = 1,<br>Write initiation delay = 0.0,<br>Read initiation delay = 0.0,<br>Sequential stream scheme = 0,<br>Maximum concat size = 128,<br>Overlapping request scheme = 0,<br>
Sequential stream diff maximum = 0,<br>Scheduling timeout scheme = 0,<br>Timeout time/weight = 6,<br>Timeout scheduling = 4,<br>Scheduling priority scheme = 0,<br>Priority scheduling = 4<br>   },<br>Use queueing in subsystem = 1<br>
} # end of DRIVER0 spec<br><br>disksim_bus BUS0 {<br>type = 1,<br>Arbitration type = 1,<br>Arbitration time = 0.0,<br>Read block transfer time = 0.0,<br>Write block transfer time = 0.0,<br>Print stats = 0<br>} # end of BUS0 spec<br>
<br>disksim_bus BUS1 {<br>type = 1,<br>Arbitration type = 1,<br>Arbitration time = 0.0,<br>Read block transfer time = 0.051200,<br>Write block transfer time = 0.051200,<br>Print stats = 1<br>} # end of BUS1 spec<br><br>disksim_bus BUS2 {<br>
type = 1,<br>Arbitration type = 1,<br>Arbitration time = 0.0,<br>Read block transfer time = 0.051200,<br>Write block transfer time = 0.051200,<br>Print stats = 1<br>} # end of BUS2 spec<br><br>disksim_bus BUS3 {<br>type = 1,<br>
Arbitration type = 1,<br>Arbitration time = 0.0,<br>Read block transfer time = 0.051200,<br>Write block transfer time = 0.051200,<br>Print stats = 1<br>} # end of BUS3 spec<br><br>disksim_bus BUSHBA {<br>type = 2,<br>Arbitration type = 1,<br>
Arbitration time = 0.001000,<br>Read block transfer time = 0.000238,<br>Write block transfer time = 0.000238,<br>Print stats = 1<br>} # end of BUSHBA spec<br><br>disksim_ctlr CTLR0 {<br>type = 1,<br>Scale for delays = 0.0,<br>
Bulk sector transfer time = 0.0,<br>Maximum queue length = 0,<br>Print stats = 1<br>} # end of CTLR0 spec<br><br>ssdmodel_ssd SSD {<br>Reserve pages percentage = 15,<br>Minimum free blocks percentage = 5,<br>Write policy = 2,<br>
Cleaning policy = 2,<br>Planes per package = 8,<br>Blocks per plane = 2048,<br>Plane block mapping = 3,<br>Copy back = 1,<br>Number of parallel units = 1,<br>Allocation pool logic = 1,<br>Elements per gang = 1,<br>Gang share = 1,<br>
Cleaning in background = 0,<br>Command overhead = 0.0,<br>Bus transaction latency = 0.0,<br>Bulk sector transfer time = 0,<br>Flash chip elements = 8,<br>Page size = 8,<br>Pages per block = 64,<br>Blocks per element = 16384,<br>
Element stride pages = 1,<br>Never disconnect = 1,<br>Print stats = 1,<br>Max queue length = 20,<br>Scheduler = disksim_ioqueue {<br>Scheduling policy = 1,<br>Cylinder mapping strategy = 0,<br>Write initiation delay = 0,<br>
Read initiation delay = 0.0,<br>Sequential stream scheme = 0,<br>Maximum concat size = 0,<br>Overlapping request scheme = 0,<br>Sequential stream diff maximum = 0,<br>Scheduling timeout scheme = 0,<br>Timeout time/weight = 0,<br>
Timeout scheduling = 0,<br>Scheduling priority scheme = 0,<br>Priority scheduling = 1<br>   },<br>Timing model = 1,<br>Chip xfer latency = 0.000025,<br>Page read latency = 0.025000,<br>Page write latency = 0.200000,<br>Block erase latency = 1.500000<br>
} # end of SSD spec<br><br>source ./atlas10k.diskspecssource ./ibm18es.diskspecssource ./cheetah9LP.diskspecsinstantiate [ <br>   statfoo<br>] as Stats<br><br>instantiate [ <br>   statfoo<br>] as Stats<br><br>instantiate [ <br>
   quantum<br>] as QUANTUM_TORNADO_validate<br><br>instantiate [ <br>   ibm<br>] as IBM_DNES-309170W_validate<br><br>instantiate [ <br>   seagate<br>] as SEAGATE_ST39102LW_validate<br><br>instantiate [ <br>   ssd0x0<br>] as SSD<br>
<br>instantiate [ <br>   bus0<br>] as BUS0<br><br>instantiate [ <br>   bus1<br>] as BUS1<br><br>instantiate [ <br>   bus2<br>] as BUS2<br><br>instantiate [ <br>   bus3<br>] as BUS3<br><br>instantiate [ <br>   busHBA0<br>] as BUSHBA<br>
<br>instantiate [ <br>   driver0<br>] as DRIVER0<br><br>instantiate [ <br>   ctlr0<br>] as CTLR0<br><br>topospec disksim_iodriver driver0 [ <br>   disksim_bus bus0 [ <br>      disksim_ctlr ctlr0 [ <br>         disksim_bus bus1 [ <br>
            disksim_disk quantum [ ]<br>         ], <br>         disksim_bus bus2 [ <br>            disksim_disk ibm [ ]<br>         ], <br>         disksim_bus bus3 [ <br>            disksim_disk seagate [ ]<br>         ], <br>
         disksim_bus busHBA0 [ <br>            ssdmodel_ssd ssd0x0 [ ]<br>         ]<br>      ]<br>   ]<br>]<br><br>disksim_logorg quantumorg {<br>Addressing mode = Parts,<br>Distribution scheme = Asis,<br>Redundancy scheme = Noredun,<br>
devices = [ <br>      quantum<br>   ],<br>Stripe unit = 17938986,<br>Synch writes for safety = 0,<br>Number of copies = 2,<br>Copy choice on read = 6,<br>RMW vs. reconstruct = 0.500000,<br>Parity stripe unit = 64,<br>Parity rotation type = 1,<br>
Time stamp interval = 0.0,<br>Time stamp start time = 60000.000000,<br>Time stamp stop time = 10000000000.000000,<br>Time stamp file name = stamps<br>} # end of quantumorg spec<br><br>disksim_logorg ibmorg {<br>Addressing mode = Parts,<br>
Distribution scheme = Asis,<br>Redundancy scheme = Noredun,<br>devices = [ <br>      ibm<br>   ],<br>Stripe unit = 17916240,<br>Synch writes for safety = 0,<br>Number of copies = 2,<br>Copy choice on read = 6,<br>RMW vs. reconstruct = 0.500000,<br>
Parity stripe unit = 64,<br>Parity rotation type = 1,<br>Time stamp interval = 0.0,<br>Time stamp start time = 60000.000000,<br>Time stamp stop time = 10000000000.000000,<br>Time stamp file name = stamps<br>} # end of ibmorg spec<br>
<br>disksim_logorg seagateorg {<br>Addressing mode = Parts,<br>Distribution scheme = Asis,<br>Redundancy scheme = Noredun,<br>devices = [ <br>      seagate<br>   ],<br>Stripe unit = 17783240,<br>Synch writes for safety = 0,<br>
Number of copies = 2,<br>Copy choice on read = 6,<br>RMW vs. reconstruct = 0.500000,<br>Parity stripe unit = 64,<br>Parity rotation type = 1,<br>Time stamp interval = 0.0,<br>Time stamp start time = 60000.000000,<br>Time stamp stop time = 10000000000.000000,<br>
Time stamp file name = stamps<br>} # end of seagateorg spec<br><br>disksim_logorg org0 {<br>Addressing mode = Array,<br>Distribution scheme = Striped,<br>Redundancy scheme = Noredun,<br>devices = [ <br>      ssd0x0<br>   ],<br>
Stripe unit = 128,<br>Synch writes for safety = 0,<br>Number of copies = 2,<br>Copy choice on read = 6,<br>RMW vs. reconstruct = 0.500000,<br>Parity stripe unit = 128,<br>Parity rotation type = 1,<br>Time stamp interval = 0.0,<br>
Time stamp start time = 60000.000000,<br>Time stamp stop time = 10000000000.000000,<br>Time stamp file name = stamps<br>} # end of org0 spec<br><br>loadparams complete<br><br>-- <br>Abdullah Al-Dahlawi<div><div>George Washington University<br>
----<br>Check The Fastest 500 Super Computers Worldwide<br><a href="http://www.top500.org/list/2010/06/100" target="_blank">http://www.top500.org/list/2010/06/100</a></div></div><br>