RE: [PATCH v37 3/4] scsi: ufs: Prepare HPB read for cached sub-region

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > > >+      /*
> > > >+       * 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?

Thanks,
Avri

> 
> Thanks
> Yohan
> 
> >
> > Thanks,
> > Avri
> >
> > >
> > > Thanks
> > > Yohan




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux