Re: [PATCH] scsi: sd_zbc: use kvzalloc to allocate report zones buffer

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

 



On 10/30/24 8:02 PM, Johannes Thumshirn wrote:
> From: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
> 
> We have two reports of failed memory allocation in btrfs' code which is
> calling into report zones.
> 
> Both of these reports have the following signature coming from
> __vmalloc_area_node():
> 
>  kworker/u17:5: vmalloc error: size 0, failed to allocate pages, mode:0x10dc2(GFP_KERNEL|__GFP_HIGHMEM|__GFP_NORETRY|__GFP_ZERO), nodemask=(null),cpuset=/,mems_allowed=0
> 
> Further debugging showed these where allocations of one sector (512 bytes)
> and at least one of the reporter's systems where low on memory, so going
> through the overhead of allocating a vm area failed.
> 
> Switching the allocation from __vmalloc() to kvzalloc() avoids the
> overhead of vmalloc() on small allocations and succeeds.
> 
> Note: the buffer is already freed using kvfree() so there's no need to
> adjust the free path.
> 
> Cc: Qu Wenru <wqu@xxxxxxxx>
> Cc: Naohiro Aota <naohiro.aota@xxxxxxx>
> Link: https://github.com/kdave/btrfs-progs/issues/779
> Link: https://github.com/kdave/btrfs-progs/issues/915
> Fixes: Fixes: 23a50861adda ("scsi: sd_zbc: Cleanup sd_zbc_alloc_report_buffer()")
> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>

Looks good.

Reviewed-by: Damien Le Moal <dlemoal@xxxxxxxxxx>

-- 
Damien Le Moal
Western Digital Research




[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