_XEx  @1LJ4 @.textJ .data 4L@.bss A( A(.loader<(|!88\98d8 88HHyA(8`8!p}N ADvrtscsi_kdb_entry|``|;acA!HHA(,@8;b8pcc8cH;,A\, @,@8`8!0a}N |c@8!0a}N 8 apHGA(,#A;Bp, A , @̀, A , @, A , @,$, Ad , Acp$ c8cH,Ad,@08`@8!0Aa}N |c@8!0A}aN 8a80HFA((0A<8{ HFA(8`@8!0A}aN 8`8H 8`@8!0A}aN 8{.DHFaA($8`@8!0}aAN pf,#@0|48z0T~H<,@8`80H5qK|48cc8cTH@,A,@Kh8 ha8HE}A((@ hb@P| @@XXa|#@@H, A(88`8LH6y8`8 hH1K8`8 hH#K8{&HE%A(apH,A0@8`8!0A}aN 8z08HE`8`@8!0A}aN 8{ HDA(8`@8!0A}aN cpcc8 Hq,@a88(HDA(((A<8{ HD%A(8`@8!0A}aN 8`8H8`@8!0A}aN cpcc8 H,@a88XHCYA((XA<8{ HCmA(8`@8!0A}aN 8`8H8`@8!0A}aN cpcc 8xH,@ax88HBA((A<8{ hHBA(8`@8!0A}aN 8`x8H8`@8!0A}aN !AaH?aA!8`@8!0}N Avrtscsi_kdb_info|`h```!He,8`A`a%a}FHAA(`d,@8!8`}N `8b8c HAUA(8!}N 8`8!}N A"IPRA.$vrtscsi_kdb_find_cmd_address|`h```!H,8`A`a%a}FHAA(`d,@8!8`}N `8b8cH@uA(8!}N 8`8!}N A!IPRA.$vrtscsi_kdb_find_vq_address|`h```!H,8`A`a%a}FH@%A(`d,@8!8`}N `8b8cH?A(8!}N 8`8!}N A#IPRA.$vrtscsi_kdb_find_chan_address|`h```!H,8`A`a%a}FH?EA(`d,@8!8`}N `8b8c H>A(8!}N 8`8!}N A"IPRA.$vrtscsi_kdb_find_dev_address8( ,$L3A4``88( (A(,$A( @8`N `N 8@(x(@(XLFBA ,$A( @8`N 8`N @isaddr|`@;L!@| (@!@H(|$@LL#8|cc8A(8~+cH=%A(8`8!}N AaH.aA8~ H089# 9~H;~.aA;+,!;>-;^-xp;+X9(!8x:1,:.x:/:2@:1:>0:~#H:^.x8(;;h8x9ap8~4!aAA8!a(A! a0H@` HA(8~4;(A}8!pxA!aN AlIPRA.$vrtscsi_kdb_usageA( L| N A( L| N  A( L| N 0A( L| N 8A( L| N H @bzeroHA( L| N PA( L| N XA( L| N `A( L| N hA( L| N H @strcmpVSC_GLOBvsc_globVSC_VQ vsc_vq VSC_CHANvsc_chanVSC_DEV vsc_dev VSC_CMD vsc_cmd VSC_IOA vsc_ioa , %s, P%-10s%-14s %-6s%*.*slbolt0x%02x0x%02xWhere: 0x%016pvrtscsigdvnqxac 0x%016p 0x%016p ddi: cdt: ras: 0x%016p 0x%08lx 0x%016p 0x%016p 0x%016p 0x%016p 0x%016p 0x%016p %*.*s%s scsi: 0x%016llx 0x%016p 0x%016p 0x%016llx 0x%016llx pci_io: lock: VQ summary:VQ details:/dev/virtio0 mp_lock: 0x%016llx err_lock: vrtscsi_global ioctl_evt: common: Dev @ 0x%016p:vrtscsi_globalvrtscsi_global virtio_reg: Device summary:Device details:Channel summary:Channel details:IOA %s not found strat_lock: IOA %s @ 0x%016p: ioctl_mp_lock: Command @ 0x%016p:Channel ID 0x%02xQstate 0x%08xErrot State 0x%08xActive IO 0x%08xHeld IO 0x%08xName ADDR Doomed IO 0x%08lx Pending IO 0x%08lxUnable to find <%s> num_cfgs = 0x%x cdt = 0x%016llx open = %d msix_ena = %d num_vqs = %d num_chan = %d ras_flags = 0x%x rasb = 0x%016llx kproc= 0x%016llx Num Cmd Elems 0x%08lxUnsupported flag - %c Proceeding without it vrtscsi Global summary:vrtscsi Global details: lock = 0x%016llx max_xfer = %08x VQ ID 0x%02x @ 0x%016p:with address qualifier Unable to find cdt_size = %d Held Head 0x%016p virtio SCSI adapter data Adapter Deatil Data state = %08x co_state = %08x num_chan_mallocd = %d [-gdvnqxac] [] Device Deatils Data vrtscsi_global @ 0x%016p: resource_name = %s intr_priority = %d slot = %d io_dma = %d nchan = %d busintr_cnt = %d resource_name = %s intr_priority = %d slot = %d io_dma = %d nchan = %d busintr_cnt = %d resource_name = %s intr_class = %d virtio_mode = %d ctrl act io = %08x ctrl pend io = %08x notify act io = %08x notify pend io = %08x Active Head 0x%016p Expected address.rc = 0x%x Expected address.rc = 0x%x Expected address.rc = 0x%x Expected address.rc = 0x%x dump_dev_state = %d Doomed Head 0x%016p Expected address. rc = 0x%x lock = 0x%016llx ras_flags = %08x resource_name = %s intr_class = %d virtio_mode = %d Channel ID 0x%02x @ 0x%016p:An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. Pending Head 0x%016p An incomplete read occurred. An incomplete read occurred. An incomplete read occurred. io_wdog = 0x%016p tm_wdog = 0x%016p An incomplete read occurred. An incomplete read occurred. bus_id = 0x%08x bar0 = 0x%08x bus_id = 0x%08x bar0 = 0x%08x bus_id = 0x%08x md_sla = 0x%08x max_queues = 0x%08x cmd_pool = 0x%016p spec_ats = 0x%016p spec_lr = 0x%016p spec_claca = 0x%016p spec_cdb = 0x%016p erec_buf = 0x%016p -x swap output mode intr_priority = %08x count = %08x file = %08x line = %08x intr_priority = %08x count = %08x file = %08x line = %08x awakened = %08x rc = %08x num_queues = 0x%08x seg_max = 0x%08x max_sectors = 0x%08x cmd_per_lun = 0x%08x event_info_size = 0x%08x sense_size = 0x%08x cdb_size = 0x%08x max_channel = 0x%04x max_target = 0x%04x max_lun = 0x%08x intr_priority = %08x count = %08x file = %08x line = %08x cdt = 0x%016llx bus_id = 0x%08x md_sla = 0x%08x max_queues = 0x%08x chan_id = 0x%d state = 0x%d Queue ID = 0x%d adapter_devno = 0x%016llx bar1 = 0x%016llx bar0_size = 0x%016llx bar1_size = 0x%016llx adapter_devno = 0x%016llx bar1 = 0x%016llx bar2 = 0x%016llx bar0_size = 0x%016llx bar1_size = 0x%016llx bar2_size = 0x%016llx bar2_sysmem = 0x%016llx rasb = 0x%016llx ras_blk_sfdc = 0x%016llx virtio_handle = 0x%016llx flags = 0x%016llx bar0_addr = 0x%016llx bar1_addr = 0x%016llx bar0_size = 0x%016llx bar1_size = 0x%016llx num_starts = 0x%d kern_start = 0x%d stop_pending = 0x%d doom_new_ops = 0x%d chan_id = 0x%d need_resume = 0x%d HELD IO(scsibuf) @ 0x%016p Unknown flag: '%c' (known: '%s') intr_priority = %08x count = %08x file = %08x line = %08x intr_priority = %08x count = %08x file = %08x line = %08x chn_doomed_io_count = 0x%08x chn_pend_io_count = 0x%08x num_cmd_elems = 0x%08x PENDING IO(scsibuf) @ 0x%016p map_fail_rsrc = 0x%08x map_fail_other = 0x%08x -n include channel info Name ADDR DEVNOName ADDR DEVNO device_features = 0x%08x driver_features = 0x%08x queue_address = 0x%08x queue_select = 0x%04x queue_size = 0x%04x isr_status = 0x%02x device_status = 0x%02x queue_notify = 0x%04x virtio_handle = 0x%016llx flags = 0x%016llx bar0_addr = 0x%016llx bar1_addr = 0x%016llx bar2_addr = 0x%016llx bar0_size = 0x%016llx bar1_size = 0x%016llx bar2_size = 0x%016llx bar2_sysmem_addr = 0x%016llx strat_q = 0x%016p kthread = 0x%016p pend_q = 0x%016p doomed_q = 0x%016p ioa = 0x%016p vq = 0x%016p DOOMED IO(scsibuf) @ 0x%016p cmd_type = 0x%08x cmd_flags = 0x%08x req_size = 0x%08x rsp_size = 0x%08x data_buf_size = 0x%08x alloc_vecs = 0x%08x data_vecs = 0x%08x used_vecs = 0x%08x write_vecs = 0x%08x tm_subtype = 0x%08x ioa = 0x%016p channel = 0x%016p d_handle = 0x%016p vlist = 0x%016p blist = 0x%016p q_alloc = 0x%016p xmem = 0x%016p iovec_pool = 0x%016p cmd_pool = 0x%016p qstate = 0x%08x er_state = 0x%08x slock = 0x%016llx thread = 0x%016llx slock = 0x%016llx thread = 0x%016llx slock = 0x%016llx thread = 0x%016llx cmd_list = 0x%016p req_data = 0x%016p rsp_data = 0x%016p vq = 0x%016p ioa = 0x%016p chan = 0x%016p dev = 0x%016p scbuf = 0x%016p vec_list = 0x%016p req_vec = 0x%016p rsp_vec = 0x%016p data_vec = 0x%016p vlist = 0x%016p blist = 0x%016p cur_spbuf = 0x%016p ioa = 0x%016p rasb = 0x%016p cdt = 0x%016p chan = 0x%016p active_cmd_list(list_head)= 0x%016p held_off_buf(head) = 0x%016p name name of adapter device ------------------------------------ device_feature_select = 0x%08x device_feature = 0x%08x driver_feature_select = 0x%08x driver_feature = 0x%08x msix_config = 0x%04x num_queues = 0x%04x device_status = 0x%02x config_generation = 0x%02x queue_select = 0x%04x queue_size = 0x%04x queue_msix_vector = 0x%04x queue_enable = 0x%04x queue_notify_off = 0x%04x queue_desc_lo = 0x%08x queue_desc_hi = 0x%08x queue_avail_lo = 0x%08x queue_avail_hi = 0x%08x queue_used_lo = 0x%08x queue_used_hi = 0x%08x ID ADDR TID VQ dma_size = 0x%016llx Invalid RAS markers for IOA @ 0x%016p req_baddr = 0x%016llx rsp_baddr = 0x%016llx expiry_time = 0x%016llx abort_tag = 0x%016llx scsi_id = 0x%016llx lun_id = 0x%016llx slock = 0x%016llx thread = 0x%016llx slock = 0x%016llx thread = 0x%016llx ACTIVE IO(vrtscsi_cmd_t) @ 0x%016p -d include device (LUN) info Example vrtscsi -dx produces the output Usage: vrtscsi [-gdvnqxac] [] -q include command queue info devs_scsilist_head = 0x%016llx ctrl_pend_scsilist_head = 0x%016llx ctrl_act_scsilist_head = 0x%016llx dev_active_io_count = 0x%08x dev_held_io_count = 0x%08x dev_doomed_io_count = 0x%08x dev_pend_io_count = 0x%08x dev_ctrl_act_io_cnt = 0x%08x dev_ctrl_pend_io_cnt = 0x%08x -g include global vrtscsi info -v include VQ (virt queue) info addr address of adapter structure vrtscsi -n --> Print the Channel Summary. Enter the vrtscsi_global address (in hex): Invalid RAS markers in vrtscsi_vq @ 0x%016p Invalid RAS markers in vrtscsi_cmd @ 0x%016p Invalid RAS markers in vrtscsi_dev @ 0x%016p Invalid RAS markers in vrtscsi_chan @ 0x%016p VRTSCSI VIRTIO MODE -----------LEGACY-----------VRTSCSI VIRTIO MODE -----------V1.0-------------Invalid RAS markers in vrtscsi_global @ 0x%016p VRTSCSI VIRTIO MODE -----------LEGACY-----------VRTSCSI VIRTIO MODE -----------V1.0-------------Invalid RAS markers in vrtscsi_global @ 0x%016p '-x' swaps to the non-default(i.e, detail) mode. ------------------------------------ Examples:. vrtscsi -vx --> Print the VQ Data in Detail mode, A vrtscsi Command Address with flag a is required vrtscsi -dx --> Print the Device Data in Detail mode, vrtscsi -nx --> Print the Channel Data in Detail mode, Only flag a is not valid unless used with flags d,n,v,c ID VQ Name ADDR dma_size ChannelADDR scsi_id lun_id ChannelOutput mode defaults to summary for all except adapter i.e., scsi0 ------------------------------------ vrtscsi -v --> Print the VQ Summary. -c vrtscsi cmd detail data command address to be provided as input -a address of structure along with the flags -dvn must be specified vrtscsi -va --> when a is specified, vq address needs to be secified vrtscsi -da --> when a is specified, dev address needs to be secified For detailed output of any structure, adapter(scsi0) detail data is appended by default @(#)61 1.6 src/bos/kernext/virtio/scsi/vrtscsi_kdb.c, vrtscsi, bos72L, l2017_49A7 12/1/17 03:34:53vrtscsi -na --> when a is specified, chan address needs to be secified ------------------------------------ vrtscsi -d --> Print the Device Summary. @4@@@@@@@@@@@@@@@@@@@@A@A @@ @ @ A(L@*2(Z8$@ 2@ @@ L@ Y@ f@ x@ @@@@ @ @  @! ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? @? @? @? @? @ ? @(? @0? @8? @@? @? @? @? @? @? @? @? @? @? @? @? @? @? A? A? A? A? A ?/usr/lib:/lib:/usr/lpp/xlC/liblibc.ashr_64.o @VPDvrtscsi64.kdb/5765E6200/520 db_register db_read_mem db_printf db_expr_ad db_get_hexdb_usage_lookupdb_symboladdr ___strcmp64 ___bzero64 ___memmove64strchr vsnprintfstrspnvrtscsi_kdb_entry