Lines Matching refs:span

90 MR_LdSpanArrayGet(u_int32_t ld, u_int32_t span,
97 MR_LdSpanPtrGet(u_int32_t ld, u_int32_t span,
111 * span support)
126 get_arm(struct mrsas_softc *sc, u_int32_t ld, u_int8_t span,
131 * Spanset related defines Added for PRL11 configuration(Uneven span support)
205 MR_LdSpanArrayGet(u_int32_t ld, u_int32_t span, MR_DRV_RAID_MAP_ALL * map)
207 return map->raidMap.ldSpanMap[ld].spanBlock[span].span.arrayRef;
235 MR_LdSpanPtrGet(u_int32_t ld, u_int32_t span, MR_DRV_RAID_MAP_ALL * map)
237 return &map->raidMap.ldSpanMap[ld].spanBlock[span].span;
564 device_printf(sc->mrsas_dev, "span map= %x\n", (unsigned int)sizeof(MR_LD_SPAN_MAP));
578 * Function to print info about span set created in driver from FW raid map
581 * ldSpanInfo: ld map span info per HBA instance
590 u_int8_t span;
605 for (span = 0; span < raid->spanDepth; span++)
606 printf("Span=%x, number of quads=%x\n", span,
607 map->raidMap.ldSpanMap[ld].spanBlock[span].
620 printf("span row start=0x%08lx, end=0x%08lx\n",
630 for (span = 0; span < raid->spanDepth; span++) {
631 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
634 spanBlock[span].block_span_info.
636 printf("Span=%x, Quad=%x, diff=%x\n", span,
660 * Outputs : span - Span number block
672 u_int32_t span, info;
683 for (span = 0; span < raid->spanDepth; span++)
684 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
687 spanBlock[span].
691 return span;
707 return span;
733 u_int32_t info, strip_offset, span, span_offset;
749 for (span = 0, span_offset = 0; span < raid->spanDepth; span++)
750 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
753 span_set->strip_offset[span])
759 "data width 0x%llx span offset 0x%llx\n", (unsigned long long)strip,
792 u_int32_t span, info;
803 for (span = 0; span < raid->spanDepth; span++)
804 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
807 spanBlock[span].block_span_info.quad[info];
818 strip += span_set->strip_offset[span];
849 u_int32_t info, strip_offset, span, span_offset;
863 for (span = 0, span_offset = 0; span < raid->spanDepth; span++)
864 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
866 if (strip_offset >= span_set->strip_offset[span])
867 span_offset = span_set->strip_offset[span];
886 get_arm(struct mrsas_softc *sc, u_int32_t ld, u_int8_t span, u_int64_t stripe,
898 arm = mega_mod64(stripe, SPAN_ROW_SIZE(map, ld, span));
912 * This routine calculates the arm, span and block for the specified stripe and
921 * Outputs : span - Span number block - Absolute Block
931 u_int8_t physArm, span;
940 /* Get row and span from io_info for Uneven Span IO. */
942 span = io_info->start_span;
947 rowMod = mega_mod64(row, SPAN_ROW_SIZE(map, ld, span));
948 armQ = SPAN_ROW_SIZE(map, ld, span) - 1 - rowMod;
950 if (arm >= SPAN_ROW_SIZE(map, ld, span))
951 arm -= SPAN_ROW_SIZE(map, ld, span);
955 physArm = get_arm(sc, ld, span, stripRow, map);
958 arRef = MR_LdSpanArrayGet(ld, span, map);
985 *pdBlock += stripRef + MR_LdSpanPtrGet(ld, span, map)->startBlk;
988 (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
989 io_info->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
991 pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
1086 " start strip 0x%llx endSrip 0x%llx span 0x%x\n",
1090 mrsas_dprint(sc, MRSAS_PRL11, "AVAGO Debug : 1. start_row 0x%llx endRow 0x%llx Start span 0x%x\n",
1126 * For Even span region lock optimization. If the start strip
1230 u_int8_t span, count;
1245 for (span = 0; span < raid->spanDepth; span++) {
1246 if (map->raidMap.ldSpanMap[ld].spanBlock[span].
1252 spanBlock[span].block_span_info.quad[element];
1264 printf("AVAGO Debug span %x rowDataSize %x\n", count,
1308 if (span == raid->spanDepth)
1313 getSpanInfo(map, ldSpanInfo); /* to get span set info */
1559 u_int8_t bestArm, pd0, pd1, span, arm;
1565 span = ((io_info->span_arm & RAID_CTX_SPANARM_SPAN_MASK)
1573 SPAN_ROW_SIZE(drv_map, ld, span) : raid->rowSize;
1575 arRef = MR_LdSpanArrayGet(ld, span, drv_map);
1599 io_info->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | bestArm;
1606 printf("AVAGO Debug R1 Load balance occur - span 0x%x arm 0x%x bestArm 0x%x "
1608 span, arm, bestArm, io_info->span_arm);
1643 * MR_GetPhyParams: Calculates arm, span, and block
1651 * This routine calculates the arm, span and block for the specified stripe and
1662 u_int8_t physArm, span;
1691 span = 0;
1694 span = (u_int8_t)MR_GetSpanBlock(ld, row, pdBlock, map, &error_code);
1699 /* Get the array on which this span is present */
1700 arRef = MR_LdSpanArrayGet(ld, span, map);
1731 *pdBlock += stripRef + MR_LdSpanPtrGet(ld, span, map)->startBlk;
1734 (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
1735 io_info->span_arm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
1737 pRAID_Context->spanArm = (span << RAID_CTX_SPANARM_SPAN_SHIFT) | physArm;
1744 * MR_GetSpanBlock: Calculates span block
1747 * span block
1752 * This routine calculates the span from the span block info.
1761 u_int32_t span, j;
1764 for (span = 0; span < raid->spanDepth; span++, pSpanBlock++) {
1769 return span;
1779 return span;
1783 return span;