RE: [PATCH v37 3/4] scsi: ufs: Prepare HPB read for cached sub-region
From: 정요한 Mobile SE (JOUNG YOHAN) <hidden>
Date: 2021-06-14 07:44:26
Also in:
lkml
quoted
quoted
quoted
quoted
+ /* + * If the region state is active, mctx must be allocated. + * In this case, check whether the region is evicted or + * mctx allcation fail. + */ + if (unlikely(!srgn->mctx)) { + dev_err(&hpb->sdev_ufs_lu->sdev_dev, + "no mctx in region %d subregion %d.\n", + srgn->rgn_idx, srgn->srgn_idx); + return true; + } + + if ((srgn_offset + cnt) > bitmap_len) + bit_len = bitmap_len - srgn_offset; + else + bit_len = cnt; + + if (find_next_bit(srgn->mctx->ppn_dirty, bitmap_len, + srgn_offset) < bit_len + srgn_offset) + return true; +It seems unnecessary to search through bitmap_len How about searching by transfer size? if (find_next_bit(srgn->mctx->ppn_dirty, bit_len + srgn_offset, srgn_offset) < bit_len + srgn_offset)Isn't bit_len should be used for size, and not bit_len + srgn_offset ?then find_next_bit checks from start to bit_len. find_next_bit stops checking if start is greater than bit_len. it does not check for dirty as transfer_size.Right. Size (nbits in _find_next_bit) practically means @end - Confusing... Either way, Is this tad optimization worth another spin in your opinion?
Worst case, we have to search every time up to the bitmap_len size. Even though, when bit_len is 1, only 1 bit needs to be checked it can increase the effect, depending on the subregion size. Thanks Yohan
Thanks, Avriquoted
Thanks Yohanquoted
Thanks, Avriquoted
Thanks Yohan