Re: [PATCH 18/19] dm-crypt: check if adding pages to clone bio fails

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

 



On Wed, Mar 29, 2023 at 5:24 PM Damien Le Moal
<damien.lemoal@xxxxxxxxxxxxxxxxxx> wrote:
>
> On 3/30/23 09:17, Yang Shi wrote:
> > On Wed, Mar 29, 2023 at 4:49 PM Damien Le Moal
> > <damien.lemoal@xxxxxxxxxxxxxxxxxx> wrote:
> >>
> >> On 3/30/23 02:06, Johannes Thumshirn wrote:
> >>> Check if adding pages to clone bio fails and if bail out.
> >>
> >> Nope. The code retries with direct reclaim until it succeeds. Which is very
> >> suspicious...
> >
> > It is not related to bio_add_page() failure. It is used to avoid a
> > race condition when two processes are depleting the mempool
> > simultaneously.
> >
> > IIUC I don't think page merge may happen for dm-crypt, so is
> > __bio_add_page() good enough? I'm working on this code too, using
> > __bio_add_page() would make my patch easier.
>
> If the BIO was allocated with enough bvecs, we could use that function. But page
> merging reduces overhead, so if it can happen, let's use it.

It does allocate BIO with enough bvecs. IIUC it will merge the
adjacent pages? If so page merging may happen. Since dm-crypt does
allocate BIO with enough bvces, so it can't fail if I read the code
correctly. I'm wondering whether we could have a never fail variant.

>
> >
> >>
> >>>
> >>> This way we can mark bio_add_pages as __must_check.
> >>>
> >>> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
> >>
> >> With the commit message fixed,
> >>
> >> Reviewed-by: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx>
> >>
> >>
> >> --
> >> Damien Le Moal
> >> Western Digital Research
> >>
> >>
>
> --
> Damien Le Moal
> Western Digital Research
>




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux