Thread (22 messages) 22 messages, 3 authors, 2020-12-01

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

From: Johannes Thumshirn <hidden>
Date: 2020-12-01 07:52:44
Also in: linux-nvme

On 01/12/2020 04:49, Chaitanya Kulkarni wrote:
On 11/30/20 04:29, Johannes Thumshirn wrote:
quoted
On 30/11/2020 04:32, Chaitanya Kulkarni wrote:
quoted
+	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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help