Messages in this thread | | | Date | Wed, 6 Jul 2022 06:09:20 -0700 | From | Christoph Hellwig <> | Subject | Re: [PATCH 08/20] block, blksnap: big buffer in the form of an array of pages |
| |
On Mon, Jun 13, 2022 at 06:53:01PM +0300, Sergei Shtepa wrote: > Description of the struct big_buffer, which is used to store > sufficiently large amounts of data, such as a CBT map, and functions for > working with it. There are systems on which quite often the kmalloc() > memory allocation function of several hundred kilobytes ends with an > error code, and it is impossible to use virtual memory when handling an > I/O unit, since a page fault situation is possible. A simple array of > pages solves this problem.
FYI, vmalloc can now be used in a GFP_NOIO context by using memalloc_noio_save / memalloc_noio_restore, which could be used to simplify this a lot.
| |