Re: [PATCH V2 2/9] nvmet: add ZNS support for bdev-ns

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

 



On 01/12/2020 04:49, Chaitanya Kulkarni wrote:
> On 11/30/20 04:29, Johannes Thumshirn wrote:
>> On 30/11/2020 04:32, Chaitanya Kulkarni wrote:
>>> +	ret =  __bio_iov_append_get_pages(bio, &from);
>> Can't you just use bio_iov_iter_get_pages() here?
>>
>> It does have a 
>>
>> if (WARN_ON_ONCE(is_bvec))
>> 	return -EINVAL;
>>
>> in it but I think that can be deleted.
>>
> That was my initial patch but it adds an extra function call to the
> 
> fast patch for NVMeOF. We don't need any of the generic functionality from
> 
> bio_iov_iter_get_pages() anyway.
> 
> 
> Why add an extra function call overhead in the hot path for each I/O ?

At least in my compilation (gcc 10.1) there's now extra function call overhead.
__bio_iov_append_get_pages() get's fully inlined into bio_iov_iter_get_pages().

$ make block/bio.s
  CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  DESCEND  objtool
  CC      block/bio.s
$ grep __bio_iov_append_get_pages block/bio.s
$ grep bio_iov_iter_get_pages block/bio.s
__kstrtab_bio_iov_iter_get_pages:
        .asciz  "bio_iov_iter_get_pages"
__kstrtabns_bio_iov_iter_get_pages:
        .section "___ksymtab_gpl+bio_iov_iter_get_pages", "a"
__ksymtab_bio_iov_iter_get_pages:
        .long   bio_iov_iter_get_pages- .
        .long   __kstrtab_bio_iov_iter_get_pages- .
        .long   __kstrtabns_bio_iov_iter_get_pages- .
        .globl  bio_iov_iter_get_pages
        .type   bio_iov_iter_get_pages, @function
bio_iov_iter_get_pages:
        .type   bio_iov_iter_get_pages.cold, @function
bio_iov_iter_get_pages.cold:
        .size   bio_iov_iter_get_pages, .-bio_iov_iter_get_pages
        .size   bio_iov_iter_get_pages.cold, .-bio_iov_iter_get_pages.cold
        .type   __UNIQUE_ID___addressable_bio_iov_iter_get_pages499, @object
        .size   __UNIQUE_ID___addressable_bio_iov_iter_get_pages499, 8
__UNIQUE_ID___addressable_bio_iov_iter_get_pages499:
        .quad   bio_iov_iter_get_pages





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux