MCPcopy Create free account
hub / github.com/ceph/ceph / decode_uncoupled

Method decode_uncoupled

src/erasure-code/clay/ErasureCodeClay.cc:799–817  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

797}
798
799int ErasureCodeClay::decode_uncoupled(const set<int>& erased_chunks, int z, int sc_size)
800{
801 map<int, bufferlist> known_subchunks;
802 map<int, bufferlist> all_subchunks;
803
804 for (int i = 0; i < q*t; i++) {
805 if (erased_chunks.count(i) == 0) {
806 known_subchunks[i].substr_of(U_buf[i], z*sc_size, sc_size);
807 all_subchunks[i] = known_subchunks[i];
808 } else {
809 all_subchunks[i].substr_of(U_buf[i], z*sc_size, sc_size);
810 }
811 all_subchunks[i].rebuild_aligned_size_and_memory(sc_size, SIMD_ALIGN);
812 assert(all_subchunks[i].is_contiguous());
813 }
814
815 mds.erasure_code->decode_chunks(erased_chunks, known_subchunks, &all_subchunks);
816 return 0;
817}
818
819void ErasureCodeClay::set_planes_sequential_decoding_order(int* order, set<int>& erasures) {
820 int z_vec[t];

Callers

nothing calls this directly

Calls 6

assertFunction · 0.85
is_contiguousMethod · 0.80
countMethod · 0.45
substr_ofMethod · 0.45
decode_chunksMethod · 0.45

Tested by

no test coverage detected