| /isa-l/raid/ |
| H A D | raid_base.c | 103 unsigned char parity; in xor_gen_base() local 110 parity = src[0][i]; in xor_gen_base() 112 parity ^= src[j][i]; in xor_gen_base() 114 src[vects - 1][i] = parity; // last pointer is dest in xor_gen_base() 125 unsigned char parity; in xor_check_base() local 132 parity = 0; in xor_check_base() 134 parity ^= src[j][i]; in xor_check_base() 136 if (parity != 0) { in xor_check_base()
|
| H A D | pq_gen_sse.asm | 33 ;;; Generates P+Q parity vector from N (vects-2) sources in array of pointers 184 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector 185 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 192 XSTR [ptr+pos], xp1 ;Write parity P1 vector 193 XSTR [ptr+pos+16], xp2 ;Write parity P2 vector 194 XSTR [ptr+pos+32], xp3 ;Write parity P3 vector 195 XSTR [tmp+pos], xq1 ;Write parity Q1 vector 196 XSTR [tmp+pos+16], xq2 ;Write parity Q2 vector 197 XSTR [tmp+pos+32], xq3 ;Write parity Q3 vector 228 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector [all …]
|
| H A D | pq_gen_avx2.asm | 33 ;;; Generates P+Q parity vector from N (vects-2) sources in array of pointers 183 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector 184 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 191 XSTR [ptr+pos], xp1 ;Write parity P1 vector 192 XSTR [ptr+pos+32], xp2 ;Write parity P2 vector 193 XSTR [ptr+pos+64], xp3 ;Write parity P3 vector 194 XSTR [tmp+pos], xq1 ;Write parity Q1 vector 195 XSTR [tmp+pos+32], xq2 ;Write parity Q2 vector 196 XSTR [tmp+pos+64], xq3 ;Write parity Q3 vector 225 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector [all …]
|
| H A D | pq_gen_avx.asm | 33 ;;; Generates P+Q parity vector from N (vects-2) sources in array of pointers 182 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector 183 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 190 XSTR [ptr+pos], xp1 ;Write parity P1 vector 191 XSTR [ptr+pos+16], xp2 ;Write parity P2 vector 192 XSTR [ptr+pos+32], xp3 ;Write parity P3 vector 193 XSTR [tmp+pos], xq1 ;Write parity Q1 vector 194 XSTR [tmp+pos+16], xq2 ;Write parity Q2 vector 195 XSTR [tmp+pos+32], xq3 ;Write parity Q3 vector 224 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector [all …]
|
| H A D | pq_gen_avx512.asm | 33 ;;; Generates P+Q parity vector from N (vects-2) sources in array of pointers 174 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector 175 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 180 XSTR [ptr+pos], xp1 ;Write parity P1 vector 181 XSTR [ptr+pos+64], xp2 ;Write parity P2 vector 182 XSTR [tmp+pos], xq1 ;Write parity Q1 vector 183 XSTR [tmp+pos+64], xq2 ;Write parity Q2 vector 212 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector 213 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 216 XSTR [ptr+pos], xp1y ;Write parity P vector [all …]
|
| H A D | pq_gen_sse_i32.asm | 33 ;;; Generates P+Q parity vector from N (vects-2) sources in array of pointers 193 mov ptr, [arg2+PS+vec*PS] ;Get address of P parity vector 194 mov tmp, [arg2+(2*PS)+vec*PS] ;Get address of Q parity vector 199 XSTR [ptr+pos], xp1 ;Write parity P1 vector 200 XSTR [ptr+pos+16], xp2 ;Write parity P2 vector 201 XSTR [tmp+pos], xq1 ;Write parity Q1 vector 202 XSTR [tmp+pos+16], xq2 ;Write parity Q2 vector 233 mov ptr, [arg2+PS+vec*PS] ;Get address of P parity vector 234 mov tmp, [arg2+(2*PS)+vec*PS] ;Get address of Q parity vector 237 XSTR [ptr+pos], xp1 ;Write parity P vector [all …]
|
| H A D | xor_gen_avx512.asm | 33 ;;; Generates xor parity vector from N (vects-1) sources in array of pointers 125 XLDR zmm1, [tmp2+pos+64] ;Keep xor parity in xmm0-7 132 vpxorq zmm0, zmm0, zmm4 ;Add to xor parity 136 mov ptr, [arg2+PS+vec*PS] ;Address of parity vector 137 XSTR [ptr+pos], zmm0 ;Write parity xor vector 164 mov [ptr+len-1], tmp2.b ;Write parity 199 mov [ptr+len-PS], tmp2 ;Write parity
|
| H A D | pq_check_sse_i32.asm | 33 ;;; Generates P+Q parity vector from N (vects-2) sources in array of pointers 164 mov ptr, [arg2+PS+vec*PS] ;Get address of P parity vector 165 mov tmp, [arg2+(2*PS)+vec*PS] ;Get address of Q parity vector 202 mov tmp, [arg2+(2*PS)+vec*PS] ;Get address of Q parity vector 209 por xp1, xq1 ;Confirm that all P&Q parity are 0 226 mov ptr, [arg2+PS+vec*PS] ;Get address of P parity vector 227 mov tmp, [arg2+(2*PS)+vec*PS] ;Get address of Q parity vector 250 mov tmp, [arg2+(2*PS)+vec*PS] ;Get address of Q parity vector 254 por xp1, xq1 ;Confirm that all P&Q parity are = 0
|
| H A D | xor_gen_avx.asm | 33 ;;; Generates xor parity vector from N (vects-1) sources in array of pointers 124 XLDR ymm1, [tmp2+pos+32] ;Keep xor parity in xmm0-7 135 vxorpd ymm0, ymm0, ymm4 ;Add to xor parity 141 mov ptr, [arg2+PS+vec*PS] ;Address of parity vector 142 XSTR [ptr+pos], ymm0 ;Write parity xor vector 171 mov [ptr+len-1], tmp2.b ;Write parity 206 mov [ptr+len-PS], tmp2 ;Write parity
|
| H A D | pq_check_sse.asm | 142 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector 192 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 201 por xp1, xq1 ;Confirm that all P&Q parity are 0 220 mov ptr, [arg2+8+vec*8] ;Get address of P parity vector 221 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 244 mov tmp, [arg2+(2*8)+vec*8] ;Get address of Q parity vector 248 por xp1, xq1 ;Confirm that all P&Q parity are = 0
|
| H A D | xor_gen_sse.asm | 33 ;;; Generates xor parity vector from N (vects-1) sources in array of pointers 167 XLDR xmm1, [tmp2+pos+16] ;Keep xor parity in xmm0-7 191 mov ptr, [arg2+PS+tmp*PS] ;Address of parity vector 192 XSTR [ptr+pos], xmm0 ;Write parity xor vector 228 mov [ptr+len-1], tmp2.b ;Write parity 262 mov [ptr+len-PS], tmp2 ;Write parity
|
| H A D | xor_check_sse.asm | 33 ;;; Checks that array has XOR parity sum of 0 across all vectors in **array. 166 XLDR xmm1, [tmp2+pos+16] ;Keep xor parity in xmm0-7 188 ;; End of vects, check that all parity regs = 0
|
| /isa-l/doc/ |
| H A D | functions.md | 25 For example, the function ec_encode_data() will generate a set of parity blocks 41 encode matrix, parameters k (source blocks) and m (total parity + source 50 describing the parity blocks are used for encode and the upper matrix is 52 matrix. Next the parity for all (m - k) blocks are calculated at once. 55 // Generate EC parity blocks from sources 61 Functions in the RAID section calculate and operate on XOR and P+Q parity found 63 finite-field arithmetic to find one or two parity bytes for each byte in N 65 corrected. For RAID5, a block of parity is calculated by the xor across the N 66 source arrays. Each parity byte is calculated from N sources by: 74 For RAID6, two parity bytes P and Q are calculated from the source array. P is [all …]
|
| /isa-l/erasure_code/ |
| H A D | gf_vect_mad_avx2_gfni.asm | 134 ;; Encodes 96 bytes of a single source and updates a single parity disk 156 ;; Encodes 64 bytes of a single source and updates a single parity disk 174 ;; Encodes 32 bytes of a single source and updates single parity disk 188 ;; Encodes less than 32 bytes of a single source and updates parity disk
|
| H A D | gf_vect_dot_prod_avx2_gfni.asm | 154 ;; Encodes 96 bytes of all "k" sources into 96 bytes (single parity disk) 187 ;; Encodes 64 bytes of all "k" sources into 64 bytes (single parity disk) 216 ;; Encodes 32 bytes of all "k" sources into 32 bytes (single parity disks) 241 ;; Encodes less than 32 bytes of all "k" sources into single parity disks
|
| H A D | gf_2vect_mad_avx2_gfni.asm | 156 ;; Encodes 96 bytes of a single source into 2x 96 bytes (parity disks) 185 ;; Encodes 64 bytes of a single source into 2x 64 bytes (parity disks) 208 ;; Encodes 32 bytes of a single source into 2x 32 bytes (parity disks) 225 ;; Encodes less than 32 bytes of a single source into 2x parity disks
|
| H A D | gf_2vect_dot_prod_avx2_gfni.asm | 178 ;; Encodes 96 bytes of all "k" sources into 2x 96 bytes (parity disk) 219 ;; Encodes 64 bytes of all "k" sources into 2x 64 bytes (parity disks) 252 ;; Encodes 32 bytes of all "k" sources into 2x 32 bytes (parity disks) 279 ;; Encodes less than 32 bytes of all "k" sources into 2 parity disks
|
| H A D | gf_3vect_mad_avx2_gfni.asm | 160 ;; Encodes 64 bytes of a single source into 3x 64 bytes (parity disks) 188 ;; Encodes 32 bytes of a single source into 3x 32 bytes (parity disks) 206 ;; Encodes less than 32 bytes of a single source into 3x parity disks
|
| H A D | gf_3vect_dot_prod_avx2_gfni.asm | 187 ;; Encodes 64 bytes of all "k" sources into 3x 64 bytes (parity disks) 225 ;; Encodes 32 bytes of all "k" sources into 3x 32 bytes (parity disks) 255 ;; Encodes less than 32 bytes of all "k" sources into 3 parity disks
|
| H A D | gf_4vect_mad_avx2_gfni.asm | 150 ;; Encodes 32 bytes of a single source into 4x 32 bytes (parity disks) 171 ;; Encodes less than 32 bytes of a single source into 4x parity disks
|
| H A D | gf_5vect_mad_avx2_gfni.asm | 169 ;; Encodes 32 bytes of a single source into 5x 32 bytes (parity disks) 192 ;; Encodes less than 32 bytes of a single source into 5x parity disks
|
| H A D | gf_vect_mad_avx512_gfni.asm | 116 ;; Encodes 64 bytes of a single source into 64 bytes (single parity disk)
|
| H A D | gf_vect_dot_prod_avx512_gfni.asm | 120 ;; Encodes 64 bytes of all "k" sources into 64 bytes (single parity disk)
|
| H A D | gf_2vect_dot_prod_avx512_gfni.asm | 132 ;; Encodes 64 bytes of all "k" sources into 2x 64 bytes (parity disks)
|
| H A D | gf_2vect_mad_avx512_gfni.asm | 121 ;; Encodes 64 bytes of a single source into 2x 64 bytes (parity disks)
|