Re: RFA (Request for Advice): block/bio: get_user_pages() --> pin_user_pages()

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

 



On 1/24/22 11:48 AM, John Hubbard wrote:
> External email: Use caution opening links or attachments
> 
> 
> On 1/24/22 05:18, Matthew Wilcox wrote:
>> On Sun, Jan 23, 2022 at 11:52:07PM -0800, John Hubbard wrote:
>>> To ground this in reality, one of the partial call stacks is:
>>>
>>> do_direct_IO()
>>>      dio_zero_block()
>>>          page = ZERO_PAGE(0); <-- This is a problem
>>>
>>> I'm not sure what to use, instead of that zero page! The zero page
>>> doesn't need to be allocated nor tracked, and so any replacement
>>> approaches would need either other storage, or some horrid scheme that I
>>> won't go so far as to write on the screen. :)
>>
>> I'm not really sure what the problem is.
>>
>> include/linux/mm.h:             is_zero_pfn(page_to_pfn(page));
>>
>> and release_pages() already contains:
>>                  if (is_huge_zero_page(page))
>>                          continue;
>>
>> Why can't the BIO release function contain an is_zero_pfn() check?
> 
> "OK." (With potential modifications as noted in the other thread with
> Jan Kara and Chaitanya, we'll see.)
> 
> Thanks for responding with that answer so quickly, much appreciated!
> 
> 

Just one more thing, sine we will be modifying the code for
allocation and de-allocation either way, it will be worth
documenting the performance impact on dio code with and
without the solutioneven if that is negligible in the cover-letter.

> thanks,
> -- 
> John Hubbard
> NVIDIA





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux