[PATCH V2 2/9] nvmet: add ZNS support for bdev-ns
Johannes Thumshirn
Johannes.Thumshirn at wdc.com
Tue Dec 1 02:51:30 EST 2020
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
More information about the Linux-nvme
mailing list