Re: [f2fs-dev] [PATCH] f2fs: bio_alloc should never fail

From: Gao Xiang
Date: Wed Oct 30 2019 - 11:50:53 EST


Hi Ted,

On Wed, Oct 30, 2019 at 11:14:45AM -0400, Theodore Y. Ts'o wrote:
> On Wed, Oct 30, 2019 at 06:43:45PM +0800, Gao Xiang wrote:
> > > You're right, in low memory scenario, allocation with bioset will be faster, as
> > > you mentioned offline, maybe we can add/use a priviate bioset like btrfs did
> > > rather than using global one, however, we'd better check how deadlock happen
> > > with a bioset mempool first ...
> >
> > Okay, hope to get hints from Jaegeuk and redo this patch then...
>
> It's not at all clear to me that using a private bioset is a good idea
> for f2fs. That just means you're allocating a separate chunk of
> memory just for f2fs, as opposed to using the global pool. That's an
> additional chunk of non-swapable kernel memory that's not going to be
> available, in *addition* to the global mempool.
>
> Also, who else would you be contending for space with the global
> mempool? It's not like an mobile handset is going to have other users
> of the global bio mempool.
>
> On a low-end mobile handset, memory is at a premium, so wasting memory
> to no good effect isn't going to be a great idea.

Thanks for your reply. I agree with your idea.

Actually I think after this version patch is applied, all are the same
as the previous status (whether some deadlock or not).

So I'm curious about the original issue in commit 740432f83560
("f2fs: handle failed bio allocation"). Since f2fs manages multiple write
bios with its internal fio but it seems the commit is not helpful to
resolve potential mempool deadlock (I'm confused since no calltrace,
maybe I'm wrong)...

I think it should be gotten clear first and think how to do next..
(I tend not to add another private bioset since it's unshareable as you
said as well...)

Thanks,
Gao Xiang

>
> Regards,
>
> - Ted
>
>