Re: [PATCH v19 3/7] xbitmap: add more operations

From: Tetsuo Handa
Date: Sun Dec 17 2017 - 05:21:52 EST


Wei Wang wrote:
> > But passing GFP_NOWAIT means that we can handle allocation failure. There is
> > no need to use preload approach when we can handle allocation failure.
>
> I think the reason we need xb_preload is because radix tree insertion
> needs the memory being preallocated already (it couldn't suffer from
> memory failure during the process of inserting, probably because
> handling the failure there isn't easy, Matthew may know the backstory of
> this)

According to https://lwn.net/Articles/175432/ , I think that preloading is needed
only when failure to insert an item into a radix tree is a significant problem.
That is, when failure to insert an item into a radix tree is not a problem,
I think that we don't need to use preloading.

>
> So, I think we can handle the memory failure with xb_preload, which
> stops going into the radix tree APIs, but shouldn't call radix tree APIs
> without the related memory preallocated.

It seems to me that virtio-ballon case has no problem without using preloading.